求助,前端如何捕捉到浏览器的弹框 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rationa1cuzz
V2EX    问与答

求助,前端如何捕捉到浏览器的弹框

  •  
  •   rationa1cuzz 2021-09-02 11:48:39 +08:00 1944 次点击
    这是一个创建于 1588 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如图如何检测我点击了打开 MisPlatform.exe
    https://www.yuque.com/rationa1/ffb538/17096745?artboard_type=artboard&view=&from=
    需求时判断如果没有安装软件则弹框下载,否则就打开
    逻辑是打开是判断是否点了打开 MisPlatform.exe 这个按钮,否则就弹框提示下载
    12 条回复    2021-09-03 16:05:45 +08:00
    ysc3839
        1
    ysc3839  
       2021-09-02 11:54:42 +08:00   1
    MisPlatform.exe 启动后在某端口启动 http server,然后前端页面尝试向这个端口发请求,请求成功说明已经运行了。
    Corua
        2
    Corua  
       2021-09-02 15:29:00 +08:00 via Android
    自定义一个 url schemes 可以直接调用本地程序,同时也能传递数据。
    rationa1cuzz
        3
    rationa1cuzz  
    OP
       2021-09-02 15:48:10 +08:00
    @ysc3839 这样体验会很差,前端肯定会有超时操作(假设 4s 没有消息就说明没有运行,然后弹框下载 /提示失败),假设电脑比较卡,就会出现明明可以成功打开还是会报错
    @Corua 搜了一下 url schemes,简单看了一下貌似是 ios 上的,我们是 windows 自己开发的 exe
    网上看的方法都是读注册表,理论上可行,感觉不靠谱
    ysc3839
        4
    ysc3839  
       2021-09-02 15:56:58 +08:00
    @rationa1cuzz 不然你觉得还能有什么办法呢?前端没什么方法跟外部程序通信的。
    ysc3839
        5
    ysc3839  
       2021-09-02 15:59:30 +08:00
    @Corua 他图里这个就是用 url scheme 打开的吧?前端不能直接检测目标 url scheme 是否存在,也不能直接检测用户是否选择了打开程序。
    rationa1cuzz
        6
    rationa1cuzz  
    OP
       2021-09-02 16:06:40 +08:00
    @ysc3839 就是没有什么办法,想问问有没有什么意见,我目前的办法是 url scheme 这种方式在 windows+chrome 环境下至少我本地)会有个如图的弹框,但是无法判断是否打开,能否可以检测到弹框的点击事件从而判断是否正常打开?
    ysc3839
        7
    ysc3839  
       2021-09-02 16:13:28 +08:00
    @rationa1cuzz 我认为不能检测,就算能,我也相信浏览器开发商会在下个版本中改为不能。
    autoxbc
        8
    autoxbc  
       2021-09-02 16:33:42 +08:00
    用户点击再去判断就有超时问题,页面初始化时就判断,等用户点击超时已经到了。如果用 <img onerror> 判断还可以不用处理跨域,不过仍然需要避免混合内容警告,也就是要提前注入自签名证书
    maichael
        9
    maichael  
       2021-09-02 17:16:27 +08:00   1
    https://github.com/vireshshah/custom-protocol-check 试下这个,不过 Chrome 新版未必支持
    typetraits
        10
    typetraits  
       2021-09-02 19:34:35 +08:00   1
    QQ 的一键登录就是 1 楼说的这种方法,腾讯的检测域名 DNS 返回 127.0.0.1,然后 QQ 客户端接收并处理请求,腾讯那个有时都会等待几秒钟才能检测到客户端已经打开
    Puteulanus
        11
    Puteulanus  
       2021-09-03 04:05:39 +08:00
    我们现在用的 Citrix 的安全检查就是一楼这种,开网页的时候 URL Protocol 拉起程序(出那个框),然后 Network 里能看到在疯狂轮询,大概半分钟没检测到网页上就会出现下载的提示和链接,让你装上再点重试
    doublleft
        12
    doublleft  
       2021-09-03 16:05:45 +08:00
    一楼正解,目前最理想的方案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5338 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:01 PVG 16:01 LAX 00:01 JFK 03:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86