android端网页超链接调用native app为什么在QQ,UC浏览器内部打开了应用,Chrome没有任何问题

发布于 2022-09-04 14:38:45 字数 1671 浏览 10 评论 0

上头给了一个需求,要通过一个网页的超链接启动本地app,但是在网上查了相关资料都是通过自定义URL Schemes协议来启动app,代码如下:

//android端xml配置
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="test" android:host="gw" android:pathPrefix="/open" android:port="8888"/>
</intent-filter>

//js代码:
    var t;
    var config = {
        scheme_IOS: 'appB://',
        scheme_Adr: 'test://gw:8888/open',
        download_url: "http://mb.sseinfo.com/ComInfoServer/ssegwappdownload.jsp",
        timeout: 600
    };
    function startApp(){
        var startTime = Date.now();
        
        if(isWeiXin()){
            alert("请在浏览器中打开!");
        }else{
            var iframe = document.createElement("iframe");
            if(checkOS()){
                iframe.src=config.scheme_Adr;
            }else{
                iframe.src=config.scheme_IOS;
            }
            iframe.style.display = "none";
            document.body.appendChild(iframe);
            t = setTimeout(function() {
                    var endTime = Date.now();
                    if (!startTime || endTime - startTime < config.timeout + 20) { 
                        window.location = config.download_url;
                    } else {
                        
                    }
            }, config.timeout);

            window.onblur = function() {
                clearTimeout(t);
            }
        }
    }

那么问题就是,除了Chrome可以,在qq,UC浏览器中都会在浏览器内部启动app,在手机后台进程中并没有启动新的app,整个app界面直接是嵌入在浏览器

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离鸿 2022-09-11 14:38:45

不能明白你后半问题,你的应用嵌入浏览器了?如果你是想问为什么在配置了scheme的情况下chrome浏览器能启动应用而qq/uc浏览器不能,那倒是可以直接解答的问题,qq/uc/wechat的浏览器都有应用白名单过滤,对scheme跳转做了限制,联系他们审核,合作,加钱吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文