2 qq 36444018 qq_36444018 于 2018.01.03 17:51 提问

js在ios下如何唤醒app 20C

ios下,分享页面在QQ内置浏览器打开,window.location=“ios人员给的某个协议”,打不开app,可是安卓能够打开,求大佬翻牌解惑

2个回答

czwczwczw
czwczwczw   2018.01.03 17:53

var browser = {
versions: function () {
var u = navigator.userAgent,
app = navigator.appVersion;
return {
trident: u.indexOf('Trident') > -1, /*IE内核*/
presto: u.indexOf('Presto') > -1, /*opera内核*/
webKit: u.indexOf('AppleWebKit') > -1, /*苹果、谷歌内核*/
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, /*火狐内核*/
mobile: !!u.match(/AppleWebKit.*Mobile.*/), /*是否为移动终端*/
ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), /*ios终端*/
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, /*android终端或者uc浏览器*/
iPhone: u.indexOf('iPhone') > -1, /*是否为iPhone或者QQHD浏览器*/
iPad: u.indexOf('iPad') > -1, /*是否iPad*/
webApp: u.indexOf('Safari') == -1, /*是否web应该程序,没有头部与底部*/
souyue: u.indexOf('souyue') > -1,
superapp: u.indexOf('superapp') > -1,
weixin: u.toLowerCase().indexOf('micromessenger') > -1,
Safari: u.indexOf('Safari') > -1
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
};

document.querySelector(".cyj-download-btn").onclick = function () {
    document.querySelector(".show-dialog").style.display = "block";
    setTimeout(function () {
        document.querySelector(".show-dialog").style.display = "none";
    },1000);
    if (browser.versions.ios) {
        window.location.href = "打开该App的连接://openApp";
        setTimeout(function () {
            window.location.href = "该App的连接地址;
            window.location.href = "该App的连接地址";
        }, 2000)
    } else if (browser.versions.android) {
        window.location.href = "打开该App的连接://openApp";
        setTimeout(function () {
            window.location.href = "该App的连接地址";
        }, 2000)
    }
};
qq_36444018
qq_36444018 可是ios下,在qq内置浏览器下打开还是跳转到appstore
4 个月之前 回复
qq_36444018
qq_36444018 这个方法用过的
4 个月之前 回复
weixin_32173489
weixin_32173489   2018.01.04 01:22
 <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLName</key>
            <string>com.test.jay</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>test</string>
            </array>
        </dict>
    </array>

图片说明

假设在ios客户端配置的是上面URLSchemes,那么你可以直接在safiri使用test://直接打开这个原生应用;
不能跳转的原因

  1. 可能是ios应用的URLSchemes配置有问题

  2. 你直接跳转到appstore说明前面的转到应用的判断条件不满足,你可以检查这个条件判断。

qq_36444018
qq_36444018 safira可以打开,可是在QQ微信的内置浏览器打不开,是因为腾讯那边的白名单导致的吗
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!