先來說一下整個這一環節的流程:
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);
}
},