微信浏览器中唤醒APP到指定页

首先判断是在微信中,还是在浏览器中,如果在浏览器中,直接使用scheme url进行跳转,如果有app就直接进入app并通过页面隐藏事件监听,取消到下载页的跳转,没有唤醒则说明无app,到下载页。

在微信中时,如果是ios,用universal Link进行指定页跳转,无app时会解析为普通路径,故此路径可放置下载页,有app时会直接唤醒app并到达指定页。而android时若要到达指定页,要么用遮罩引导用户在浏览器打开,要么达到应用宝中deeplink的条件。我的项目中主要目的是进入app,所以直接放置了应用宝的地址,放弃了到达指定页。

toDownload() {

      if (this.$api.isWx) {

        if (this.$api.subTag == "wxIOS") {

          let url =

            "https://xxx.xxx.com/applink/?url=https://xxx.xxx.com" +

            this.$route.fullPath;

          location.href = url;

        } else {

          window.location.href =

            "https://a.app.qq.com/dom/micro/open.jsp?pkgname=com.xxx.xxx&android_scheme=xxxx://spa/welcome?url=https://xxx.xxx.com" +

            this.$route.fullPath;

        }

      } else {

        let url =

          "xxx://spa/welcome?url=https://xxx.xxx.com" +

          this.$route.fullPath;

        location.href = url;

        //延迟执行 如果1s没响应,就表示你手机中没有该app。就可以去下载了

        var timer = setTimeout(() => {

          location.href = "https://xxx.xxx.com/download"; //ios下载地址

        }, 1000);

        document.addEventListener(

          "visibilitychange webkitvisibilitychange",

          function() {

            var tag = document.hidden || document.webkitHidden;

            tag ? clearTimeout(timer) : "";

          }

        );

        window.onpagehide = function() {

          clearTimeout(timer);

        };

      }

    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值