mui app创建URL Schemes

在配置文件manifest.json下 切换到代码视图,在plus -> distribute -> apple 下添加urltypes节点,


image.png

在h5页面处理

var choose = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/
    var realmName = choose.exec(window.location.pathname)
    console.log(realmName)
    var realm = realmName[0]
    // $('.mask').css('display', 'block')
    var ua = navigator.userAgent.toLowerCase();
    var isWeixin = ua.indexOf('micromessenger') != -1;
        if (isWeixin) {
            $('.mask').css('display', 'block')
        } else{
            window.location.href = "zfcsupplier://" + realm + '?id=' + id

            var downloader = setTimeout(function () {
                window.location.href = "supplierdownload.html"
            }, 2500)
            document.addEventListener('visibilitychange webkitvisibilitychange', function () {
                // 如果页面隐藏,推测打开scheme成功,清除下载任务
                if (document.hidden || document.webkitHidden) {
                    clearTimeout(downloader);
                }
            });
            window.addEventListener('pagehide', function () {
                clearTimeout(downloader);
            });
        }

在app中处理

// 外部链接唤醒app
            var argRegexp = /([^&=]+)=?([^&]*)/g;
            // 选取域名
            var choose = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/
            var parseArgs = function(queryString) {
                if (queryString) {
                    var args = {};
                    var e;
                    while (e = argRegexp.exec(queryString)) {
                        args[decodeURIComponent(e[1])] = decodeURIComponent(e[2]);
                    }
                    return args;
                }
                return false;
            };
            var handleArgs = function(args) {
                if (args) {
                    return args.replace(/.*\?/, '')
                }
                return false;
            };


            document.addEventListener('plusready', function() {
                checkArguments();
            }, false);
            // 判断启动方式
            function checkArguments() {
                // alert(plus.runtime.launcher )
                if (plus.runtime.launcher == "default") {
                    // alert(plus.runtime.launcher )
                    return
                } else if (plus.runtime.launcher == "scheme") {
                    // var args = plus.runtime.arguments;
                    // alert(JSON.stringify(args))

                    var args = parseArgs(handleArgs(plus.runtime.arguments));
                    var realmName = (choose.exec(plus.runtime.arguments))
                    console.log(realmName)
                    var realm = realmName[0]
                    if (realm) {
                        mui.openWindow({
                            id: './supplier/'+realm,
                            url: './supplier/'+realm,
                            styles: {
                                "render": "always",
                                "popGesture": "hide",
                                "bounce": "vertical",
                            },
                            extras: {
                                extId: args.id,
                                // isRead: args.userId
                            }
                        })
                        }

                    }

                }
                // 处理从后台恢复
                document.addEventListener('newintent', function() {
                    console.log("addEventListener: newintent");
                    checkArguments();
                }, false);

你可能感兴趣的:(mui app创建URL Schemes)