天天看點

通過外掃二維碼判斷手機是否有某App

先來說一下整個這一環節的流程:

1、需要前端建立一個單獨的頁面,将這個頁面的url告知後端同僚,由他們生成一個二維碼

2、在手機端掃描二維碼後,自動打開前端建立的頁面

3、該頁面的所有邏輯都在打開頁面的動作下觸發

4、在這個頁面内我們去判斷,使用什麼工具來掃描的二維碼,如果是浏覽器掃描的話,我們可以直接進行是否已下載下傳App的判斷,如果是用微信掃描的話,需要給使用者一個去浏覽器打開連結的提示。因為微信内部将喚起本地App的接口給禁掉了,是以我們用微信掃描時是不起作用的。

handleApp() {
            const ua = window.navigator.userAgent.toLowerCase();
            // eslint-disable-next-line
            if (ua.match(/MicroMessenger/i) == "micromessenger") {
                // 是否微信打開
                // 這裡我們提示使用者去浏覽器打開連結;
                this.isWeixin = true;
            } else if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
                // 打開App的協定,需要用戶端的同僚提供
                window.location.href = `xlsxapp://requiopqkl5u9rlwgj3tputr?miniCourseId=${this.miniCourseId}`; // ios app協定
                // 當兩秒内沒有喚醒App我們就預設手機内部沒有下載下傳該app,那麼我們就讓它跳轉到下載下傳頁面,ios中自動跳轉到app store中,安卓就需要用戶端的同僚給一個下載下傳位址即可
                setTimeout(() => {
                    window.location.href = 'itms-apps://itunes.apple.com/app/id1458600163';
                }, 2000);
            } else if (navigator.userAgent.match(/android/i)) {
                window.location.href = `xlsx://parent/enterTeacherClassDetailVideo?miniCourseId=${this.miniCourseId}`; // android app協定 其中miniCourseId 就是掃碼擷取的url裡面的miniCourseId
                setTimeout(() => {
                    window.location.href = 'https://www.pgyer.com/6pt7'; // android 下載下傳位址
                }, 2000);
            }
        },
           

繼續閱讀