美文网首页
H5唤醒app

H5唤醒app

作者: 天字一等 | 来源:发表于2018-08-29 10:47 被阅读13次

    转载自:https://www.jianshu.com/p/48288466bdc2 https://blog.csdn.net/henrywulibin/article/details/52087041
    https://www.cnblogs.com/shadajin/p/5724117.html
    自己封装的唤醒app的js代码:

    `在浏览器打开:`
    function toApp(isDownload) {
        if (!isApp() && !browser.versions.weixin) {
            if (browser.versions.ios) {
                // window.open("iOSMamaWallet://");
                // location.href="https://88mmmoney.com/";
    
                location.href = "iOSMamaWallet://";     //如果唤醒成功,则会打开app,否则跳转到下载app的地址
                setTimeout(
                    function() {
                        if (isDownload) {
                            location.href = "https://itunes.apple.com/cn/app/ma-ma-qian-bao/id1025005906?mt=8";
                            /** *下载app的地址** */
                        }
                    }, 2000)
            } else if (browser.versions.android) {
                // window.location.href = "androidMamaWallet://";
    
    > //在iframe 中打开APP
                var ifr = document.createElement("iframe");
                ifr.src = "androidmamawallet://";   
                ifr.style.display = "none";
                document.body.appendChild(ifr);
                setTimeout(
                    function() {
                        document.body.removeChild(ifr);
                        if (isDownload) {
                            location.href = "http://sj.qq.com/myapp/detail.htm?apkName=com.mmmoney.app";
                        }
                    }, 2000)
    
                
            }
        }
    }
    在安卓手机上用下面这种方案更友好些
    这种方法也行:
    function toApp(isDownload) {
        if (!isApp() && !browser.versions.weixin) {
            if (browser.versions.ios) {
                // window.open("iOSMamaWallet://");
                // location.href="https://88mmmoney.com/";
                //首先会尝试打开URL scheme,如果成功,就唤起APP;如果失败,则跳转到 href 属性
                location.href = "iOSMamaWallet://";  // 自定义 URL scheme
                setTimeout(
                    function() {
                        if (isDownload) {
                            location.href = "https://itunes.apple.com/cn/app/ma-ma-qian-bao/id1025005906?mt=8";
                            /** *下载app的地址** */
                        }
                    }, 2000)
            } else if (browser.versions.android) {
                    window.location.href = "androidmamawallet://";
                    setTimeout(function(){
                          window.location.href = "http://sj.qq.com/myapp/detail.htm?apkName=com.mmmoney.app";
                    },2000)   
            }
        }
    }
    

    微信中唤醒app:
    微信中打开

    因为微信将唤起本地APP的接口给禁了,所以微信中是不能直接唤起APP的,一般做法是提示用户在浏览器中打开,之后的流程还是我们上面讲的内容。
    
    但是,在iOS9中,这个限制是可以突破的,也就是说可以直接唤起APP。方法就是使用我们上文提到的universal link。
    
    在Android和iOS8及其以下系统中,我们可以利用腾讯的亲儿子:应用宝。简单讲,就是把你的唤起地址配置成你APP的应用宝地址,微信中跳转到这个地址后,如果用户已经安装了APP,则可直接唤起,如果没有安装,则可直接点击下载,如下图示:
    另外,在微信中唤醒APP默认只能到达首页,即不能到达指定页面或内容,如果想要做,则需要额外的处理。
    
    ## 拿来主义
    
    从以上内容可以总结出:要做一个兼容性很好的方案,就需要考虑各种情况,在不同的情况适配不同的方案,比方说用户是在手机浏览器打开还是微信中打开,或者是在pc中打开,universal link是否被关闭等,这就使代码实现变得复杂,且容易出错,且还有安卓平台机型众多、浏览器众多等导致的兼容问题。
    
    如果觉得实现难度或者成本太高,你可以考虑使用魔窗的mLink。只要你加了魔窗的sdk,就可以通过类似“[https://s.mlinks.cc/AA01”的链接,在任何环境下打开你的APP(如果在pc机上打开,浏览器中将会出现APP下载地址的二维码](https://s.mlinks.cc/AA01%E2%80%9D%E7%9A%84%E9%93%BE%E6%8E%A5%EF%BC%8C%E5%9C%A8%E4%BB%BB%E4%BD%95%E7%8E%AF%E5%A2%83%E4%B8%8B%E6%89%93%E5%BC%80%E4%BD%A0%E7%9A%84APP%EF%BC%88%E5%A6%82%E6%9E%9C%E5%9C%A8pc%E6%9C%BA%E4%B8%8A%E6%89%93%E5%BC%80%EF%BC%8C%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E5%B0%86%E4%BC%9A%E5%87%BA%E7%8E%B0APP%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81)),上面提到的问题都不复存在,并且魔窗已经兼容超过600台以上安卓机型的第三方主流浏览器。而且关键的是,不管是在手机浏览器中,还是在微信中打开,你可以指定唤起APP后直达APP中的某个页面或内容(某个促销商品等),就算用户没安装APP,点击下载安装之后,再打开,还是跳转到指定的页面,这就是场景还原,或者叫做Deffered Deep Linking。
    
    欢迎访问魔窗官网:[http://www.magicwindow.cn/](http://www.magicwindow.cn/)
    

    相关文章

      网友评论

          本文标题:H5唤醒app

          本文链接:https://www.haomeiwen.com/subject/pcshwftx.html