H5页面唤醒APP

这个项目用的是vue框架,需要判断手机系统和浏览器环境,因为在微信中是不能直接打开APP的,微信屏蔽了此功能,当时研究了好久,还是没能实现,我也是很无奈。
打开APP用的是url scheme,需要客户端那边定义给出链接,前端直接跳转就行了。
下面是js部分代码

goToApp() {
  if (isWXBrowser) { 
    //判断是否是在微信浏览器中打开的h5链接,如果是,只能跳转到下载APP
    if ("ios" == getAppType()) {
      window.location.href = this.iosDownUrl; // 跳转到App Store
    } else {
      window.location.href = this.androidDownUrl; // 跳转到应用宝
    }
  } else {
    if ("ios" == getAppType()) {
      this.openOrDown(this.iosOpenUrl, this.iosDownUrl);
    } else {
      this.openOrDown(this.androidOpenUrl, this.androidDownUrl);
    }
  }
},
openOrDown(openUrl, downUrl){
  window.location.href = openUrl;
  let hasApp = true;
  setTimeout(function() {
    //没有安装APP则跳转至应用宝下载,延时时间设置为2秒
    if (!hasApp){
      window.location.href = downUrl;
    }
  }, 2000);
  let t1 = Date.now();
  setTimeout(function() {
    //t的时间就是出发APP启动的时间,若APP启动了,再次返回页面时t2这行代码执行,hasApp即为true。反之若APP没有启动即为false
    let t2 = Date.now();
    hasApp = !(!t1 || t2 - t1 < 1150);
  }, 1000);
}

最后在微信小程序里可以直接打开APP,不过小程序又没有打开App Store的功能,安卓也打不开应用市场。具体可以参考小程序官方文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。