欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

HBuilder使用:微信唤醒APP,无APP则下载

程序员文章站 2022-03-28 17:51:43
1,需要注册URLschemes(URLschemes是实现APP之间的跳转的),让网页去唤醒目的APP2,在index.html中,加入此代码mui.plusReady(function(){checkArguments();});//判断启动方式functioncheckArguments(){console.log("plus.runtime.launcher:"+plus.runtime.launche......

1,需要注册URL schemes(URL schemes是实现APP之间的跳转的),让网页去唤醒目的APP

 

HBuilder使用:微信唤醒APP,无APP则下载

 

2,在index.html中,加入此代码

 mui.plusReady(function () {

    checkArguments();

  });

  // 判断启动方式  

  function checkArguments() {

    console.log("plus.runtime.launcher: " + plus.runtime.launcher);

    var args = plus.runtime.arguments;

    if (args) {

      // 处理args参数,如打开新页面等  

      mui.alert(args, title)

    }

  }

  // 处理从后台恢复  

  document.addEventListener('newintent', function () {

    console.log("addEventListener: newintent");

    checkArguments();

  }, false);

```

 

3,在需要进行此操作的页面中,加入,如下代码:

此为点击按钮之后出发此操纵的,也有进入页面就可以出发此操作的

onClickRight(e) {

        var ua = window.navigator.userAgent.toLowerCase();

    `//判断是否是在微信中打开?`

        if (ua.match(/MicroMessenger/i) == 'micromessenger') {

          Toast('若想在App打开次页面,请点击右上角,在浏览器中打开');

        }

    `//判断是否在iOS系统中打开?`

        if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {

          window.location.href = "infomarket://"; //ios app协议

          window.setTimeout(function () {

            window.location.href = "https://itunes.apple.com/cn/app/id477927812";

          }, 2000);

        }

    `//判断是否在安卓系统中打开?`

        if (navigator.userAgent.match(/android/i)) {

          var ifr = document.createElement("iframe");

          ifr.src = "infomarket://?new=" + Math.random();

          document.body.appendChild(ifr);

          setTimeout(function () {

            document.body.removeChild(ifr);

            location.href =

              "http://information.liangshiyun.com/phone/Android1.apk";

          }, 2000);

        }

      }

 

有一点需要注意的是:

 

本地打包的static和index.html需要和线上(服务器)同步,否则,本地改了,打包之后也是没改的样子,这一点,看具体操作,**线上本地要同步**

 

还有

 

打包的apk包,可以改下后缀名字(比如infomarket.app改为infomarket.zip),这样可以解压这个apk的包,去找问题

 

或者,去**浏览器浏览有问题网页**,然后刷新几次,**检查---->Network---->all**,去查看加载的文件,去查找一些问题。我之前就是因为本地代码中**没有alert("唤醒")**,但是**线上却弹出了“唤醒**”,这个时候,本地代码没有,就要去加载的那些css,Js,等等的一些文件中,去搜索,有没有相关内容,如果有,那么就是线上代码和本地代码不同步造成的,如果没有,那就换个思路继续查找问题。

本文地址:https://blog.csdn.net/Crazy_GirlLL/article/details/108705502