美文网首页
MUI H5+ APP 分享H5连接 通过scheme唤醒APP

MUI H5+ APP 分享H5连接 通过scheme唤醒APP

作者: 码码虎呼 | 来源:发表于2018-12-18 15:54 被阅读0次

    添加scheme

    在manifest.json文件中添加IOS及安卓的scheme节点

    //IOS
    "apple": {
        "appid": "testguangdian.dome",/*iOS必选,苹果开发网站申请的appid,如io.dcloud.HelloMUI*/
        "mobileprovision": "",/*iOS必选,打包配置文件*/
        "password": "goncenleo01",/*iOS必选,导入配置文件密码*/
        "p12": "",/*iOS必选,打包配置文件关联的个人证书*/
        "devices": "universal",/*iphone,可取值iphone/ipad/universal*/
        "urltypes":[
            {
                "urlidentifier":"testguangdian.dome",
                "urlschemes":[
                    "zhsq"
                ]
            }
        ],
     
        "frameworks": []
    },
    
    //安卓
    "google": {
        "packagename": "",/*Android必选,程序包名,如io.dcloud.HelloMUI*/
        "keystore": "",/*Android必选,打包证书文件*/
        "password": "",/*Android必选,打包证书密码*/
        "aliasname": "",/*Android必选,打包证书别名*/
        "schemes":[
            "zhsq"
        ],
    }
    

    在APP的首页中 做出响应

    document.addEventListener('plusready', function () {
        checkArguments();
    }, false);
    // 判断启动方式
    function checkArguments() {
         alert(plus.runtime.launcher )
        if(plus.runtime.launcher == "default"){
            return
        }else if(plus.runtime.launcher == "scheme"){
                var args = plus.runtime.arguments;
                alert(JSON.stringify(args))
     
                if (args) {
                    arr = args.split("?")[1];
                var goodsid = arr.split("=")[1];
                    setTimeout(function(){
     
                        mui.openWindow("goods_detail.html?goodsid="+goodsid);
                        
                    },1000)
     
                }
            }
            
        }
        // 处理从后台恢复
    document.addEventListener('newintent', function () {
        console.log("addEventListener: newintent");
        checkArguments();
    }, false);
    

    在H5中唤起

    function gp_down(dev){ //下载链接
        if(dev=='android'){
                var ifr = document.createElement('iframe');
                ifr.src = 'https://zhapp.4hl.cn/static/home/js/H53D548C0_0806114840.apk';
                ifr.style.display = 'none';
                document.body.appendChild(ifr);
        }else if(dev=='ios'){
            
        }
    }
    
    
    
    
    function submitFn(){
        
    //判断浏览器
    var u = navigator.userAgent;
    if(/MicroMessenger/gi.test(u)) {
        // 引导用户在浏览器中打开
        alert('请在浏览器中打开');
        return;
    }
    var d = new Date();
    var t0 = d.getTime();
    if(u.indexOf('Android') > -1 || u.indexOf('Linux') > -1){
        //Android
                var href = "zhsq://startapp?goodsid=428045"
    //                      alert("Android-->zhsq")
    //                      alert(openApp('zhsq://startapp'))
        if(openApp(href)){
            openApp(href);
        }else{
            //由于打开需要1~2秒,利用这个时间差来处理--打开app后,返回h5页面会出现页面变成app下载页面,影响用户体验
            var delay = setInterval(function(){
                    var d = new Date();
                    var t1 = d.getTime();
                    if( t1-t0<3000 && t1-t0>2000){
    //                          alert('请下载APP');
    //                           window.location.href = " app下载地址 ";
                    }
                    if(t1-t0>=3000){
                        clearInterval(delay);
                    }
            },1000);
        }
    }else if(u.indexOf('iPhone') > -1){
        //IOS
    //              alert("ios-->zhsq")
    //                              alert(openApp('zhsq://startapp'))
        if(openApp('zhsq://startapp')){  
            openApp('zhsq://startapp');
        }else{
            var delay = setInterval(function(){
                var d = new Date();
                var t1 = d.getTime();
                if( t1-t0<3000 && t1-t0>2000){
    //                          alert('请下载APP');
    //                          window.location.href = "app下载地址 ";
                }
                if(t1-t0>=3000){
                    clearInterval(delay);
                }
            },1000);
        }
    }    
    }
    
    function openApp(src) {
    // 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为
    // 否则打开a标签的href链接
        var ifr = document.createElement('iframe');
    //               alert("openApp-->"+src)
        ifr.src = src;
        ifr.style.display = 'none';
        document.body.appendChild(ifr);
        window.setTimeout(function( ){
            document.body.removeChild(ifr);
        },2000);
    }
    
    
    submitFn()    
    
    H5中唤起APP

    相关文章

      网友评论

          本文标题:MUI H5+ APP 分享H5连接 通过scheme唤醒APP

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