混合app之间的跳转

两个app之间的跳转

公司和一家线上商城合作了,需要让我们的用户在自己的商城里点击跳转到对方商城,且不用再注册。在这里总结一下方法。

1.写一个h5页面,让后台生成可访问的链接。在app中调用手机浏览器打开这个链接,可以在url中传递需要的参数。

plus.runtime.openURL("http://mj.shijiyunshang.com/huanxing?account="+profile.phone)

注意: plus是H5+API的方法,在电脑浏览器开发者工具里调试会报plus无意义,手机上可以用。
2.在h5页面中写一个进入商城的按钮,在点击事件里判断用户如果安装了对方的app则直接唤醒,没有则提示下载。

 <script>
    $(function() {
     //接收url中传递的参数
      function getString(name) {
        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        let r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]);
        return null;
      }
      let jiedao_account = getString("account");
     
      $("#lijiBtn").click(function() {
        // navigator.userAgent.indexOf判断浏览器类型
        var u = navigator.userAgent;
        var d0 = new Date();
        var t0 = d0.getTime();
        if (u.indexOf("Android") > -1 || u.indexOf("Linux") > -1) {
            //直接唤醒妙街
          window.location.href =
            "miaojie://pages/index/index?type=3&account=" + jiedao_account;
          // 没有安装妙街app  在进入h5页面两秒后会显示下载链接。  此处有bug:如果用户下载了妙街 提示跳转时用户两秒内没有点击跳转,也会弹出下载妙街  应该加个return? 
          var delay = setInterval(function() {
            var d = new Date();
            var t1 = d.getTime();
            if (t1 - t0 < 3000 && t1 - t0 > 2000) {
                //下载妙街
              window.location.href =
                "https://www.appstore-cjq.com/down?pckId=0cc124362346488598b2f00edd240375";
            }
            if (t1 - t0 >= 3000) {
              clearInterval(delay);
            }
          }, 1000);
        } else if (u.indexOf("iPhone") > -1) {
          window.location.href =
            "miaojie://pages/index/index?type=3&account=" + jiedao_account;
          var delay = setInterval(function() {
            var d = new Date();
            var t1 = d.getTime();
            if (t1 - t0 < 3000 && t1 - t0 > 2000) {
              window.location.href =
                "https://www.appstore-cjq.com/down?pckId=0cc124362346488598b2f00edd240375";
            }
            if (t1 - t0 >= 3000) {
              clearInterval(delay);
            }
          }, 1000);
        }
      });
	//这个函数不知道什么作用  查了iframe的用法。 
      function openApp(src) {
        var ifr = document.createElement("iframe");
        ifr.src = src;
        ifr.style.display = "none";
        document.body.appendChild(ifr);
        window.setTimeout(function() {
          document.body.removeChild(ifr);
        }, 2000);
      }
    });
  </script>

直接在app里点击按钮调用浏览器打开h5页面好像不能,需要把h5页面给后台让他给你生成一个可访问的链接,然后用 window.location.href ="url"的方法跳转到h5页面。 ——陶

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值