H5喚醒app

url scheme方式html

var downloader,
            scheme = ":lklk" //須要打開的app scheme地址
            iosDownload = "jjjj",//若是打開scheme失效的app下載地址
            anDownload = "http://xxx.com"
            var u = navigator.userAgent
            var isAndroid = u.indexOf("Android")>-1 || u.indexOf("Linux")>-1 //g
            var isIos = !!u.match(/\(i[^;]+;(u;)?CPU.+Mac OS X/);//ios終端
            // 給id爲openBtn的按鈕添加點擊事件處理函數
            document.getElementById("openBtn").onclick = function(){
                window.location.href = scheme  //嘗試打開scheme
                //設置3秒的定時下載任務 3秒以後下載app
                downloader = setTimeout(function(){
                    if(isAndroid){
                        window.location.href = anDownload
                    }
                    if(isIos){
                        windwo.location.href = iosDownload
                    }
                },3000)
            },
            document.addEventListener('visibilitychange webkitvisibilitychange',function(){
                //若是頁面隱藏 推測打開scheme成功  清除下載任務
                if(docuemnt.hidden || docuemnt.webkitHidden){
                    clearInterval(downloader)
                }
            })
            window.addEventListener('pagehide',function(){
                clearInterval(downloader)
            })
/**
     * @description: 安卓喚起App
     */

    //  方案1
    // openAndroidApp() {
    //   var d = new Date()
    //   var t0 = d.getTime()
    //   if (this.openApp('opengloud://app.gloud.com/detail?tab=1')) {
    //     this.openApp('opengloud://app.gloud.com/detail?tab=1')
    //   } else {
    //     var d = new Date()
    //     var t1 = d.getTime()
    //     // 因爲打開須要1~2秒,利用這個時間差來處理--打開app後,返回h5頁面會出現頁面變成app下載頁面,影響用戶體驗
    //     var delay = setInterval(() => {
    //       var d = new Date()
    //       var t1 = d.getTime()
    //       if (t1 - t0 < 3000 && t1 - t0 > 2000) {
    //         this.$util.viewAPPDownload()
    //       }
    //       if (t1 - t0 >= 3000) {
    //         clearInterval(delay)
    //       }
    //     }, 1000)
    //   }
    // },
    // openApp(url) {
    //   location.href = url
    // },

    // 方案2:
    openAndroidApp() {
      // e = e || window.event
      window.location.href = 'opengloud://app.gloud.com/detail?tab=1' //嘗試打開scheme
      //  if (e.preventDefault) {
      //   e.preventDefault()
      // } else {
      //   e.returnValue = false
      // }
      //設置3秒的定時下載任務 3秒以後下載app
      this.downloader = setTimeout(() => {
        // window.open("about:blank","_self").close();
        this.$util.viewAPPDownload()
      }, 3000)
    },

    // 方案三
    // openAndroidApp() {
    //   var ifr = document.createElement('iframe')
    //   ifr.src = 'opengloud://app.gloud.com/detail?tab=1'
    //   ifr.style.display = 'none'
    //   document.body.appendChild(ifr)
    //   this.downloader = window.setTimeout(()=>{
    //     document.body.removeChild(ifr)
    //     // 這裏寫兜底策略的邏輯,好比下載。
    //     // 固然,也能夠不加任何的兜底策略,調不起就算了。
    //     this.$util.viewAPPDownload()
    //   }, 300)   
    // },
    //方案四
    // openAndroidApp(){
    //   const options = {
    //     scheme:  'opengloud://app.gloud.com/detail?tab=1',
    //     intent: {
    //       package: 'opengloud://app.gloud.com/detail?tab=1',
    //       scheme: 'opengloud://app.gloud.com/detail?tab=1'
    //     },
    //     appstore: 'https://wcgcenter.wostore.cn/gameInfos/appDownload/h5.html?chid=h5start',
    //     yingyongbao: 'https://wcgcenter.wostore.cn/gameInfos/appDownload/h5.html?chid=h5start',
    //     fallback: 'https://wcgcenter.wostore.cn/gameInfos/appDownload/h5.html?chid=h5start',
    //     timeout: 4000,
    //   }
    //   const callLib = new CallApp(options)
    //   callLib.open({})
    // },
相關文章
相關標籤/搜索