H5中判断App是否安装过

背景简介:

最近在处理H5的一些需求,其中有个小问题是需要在H5中判断是否安装过某个App:
如果安装过App,则打开App
如果未安装过App,则进入App的下载页面

代码详情

// 下面的代码,楼主楼主是在Vue2中使用的,如果语言不通,根据自己所写的语言稍微改下即可。
handleOpenApp() {
      const channel = this.channel
      const t = 1000
      const t1 = Date.now()
      const ifr = document.createElement('iframe')
      // 下面的this.url 是需要跳转到app的schema链接
      ifr.setAttribute('src', this.url)
      ifr.setAttribute('style', 'display:none')
      document.body.appendChild(ifr)
      setTimeout(function() {
      	// 启动app时间较长处理
        const t2 = Date.now()
        document.body.removeChild(ifr)
        if (t2 - t1 < t + 100) {
          console.log('hasApp', false)
          // 没有安装App,跳转到对应的App下载页面。
          // 下面的例子App下载页面也是H5页面。
          window.location.href = `${window.location.origin}/static/h5/index.html#/app/download?channel=${channel}`
        } else {
          console.log('hasApp', true)
          // 已经安装App,下面的this.url是需要跳转到app的schema链接。
          window.location.href = this.url
        }
      }, t)
    }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐