H5唤起应用商店或者应用市场

应用商店scheme
小米mimarket://details?id=com.xx.xx
三星samsungapps://ProductDetail/com.xx.xx
华为appmarket://details?id=com.xx.xx
OPPOoppomarket://details?packagename=com.xx.xx
vivovivomarket://details?id=com.xx.xx

示例

  const installApp = () => {
    if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
      var loadDateTime = new Date()
      window.location = 'https://xxxxxxx' //schema链接或者universal link
      window.setTimeout(function () {
        //如果没有安装app,便会执行setTimeout跳转下载页
        var timeOutDateTime = new Date()
        if (timeOutDateTime - loadDateTime < 5000) {
           window.location = 'https://xxxxxxx' //ios下载页面
        } else {
          window.close()
        }
      }, 500)
    } else if (navigator.userAgent.match(/android/i)) {
      var state = null
      try {
        window.location = 'usp:xxxxx' //schema链接或者universal link
        window.setTimeout(function () {
         window.location = 'https:xxxxxxx' //android下载页面
        }, 500)
      } catch (e) { }
    }
  }
  
// 点击下载地址,有上架手机商店的直接打开应用商店,没有上架商店打开下载地址
  const download = () => {
    var u = navigator.userAgent
    if (u.indexOf('iPhone') > -1) {
      //苹果手机
      window.location.href = 'https:xxxxxx' //ios下载地址
    } else {
      if (u.match(/(vivo|VIVO);?/i)) {
        window.location.href = "vivomarket://details?id=com.xxxxx"  // vivo手机  com.xxxx包名
      } else if (u.match(/(OPPO|oppo);?/i)) {
        window.location.href = "oppomarket://details?packagename=com.xxxxxx" // oppo手机
      } else if (u.match(/(HUAWEI|HONOR);?/i)) {
        window.location.href = "appmarket://details?id=com.xxxxx" // 华为手机
      } else {
        //安卓其他设备
        window.location.href = 'https:xxxxxxx'   // 下载地址
      }
    }
  }

微信浏览器

以上的应用商店地址,在浏览器可以唤起,但在微信浏览器中点击无效,目前看起来,多数是放应用宝的链接,打开应用宝下载,如果有应用宝,会进入应用宝网页,点击下载跳转到应用宝下载,如果没有应用宝,需要先下载应用宝。

https://sj.qq.com/appdetail/com.xx.xx

第三方库

https://github.com/suanmei/callapp-lib

案例

可以参考这个下载页https://www.36linkr.com/page/browser/articleShare?articleId=49fceaf44a99f8a54da7aff3f4401ad5

Leave a Comment

邮箱地址不会被公开。 必填项已用*标注