問題分析:普通頁面一般無法調用微信的掃一掃接口,從而否定通過微信掃一掃功能給我們判斷當前掃碼的設備類型。
解決方案:通過應用下載頁面自身來獲取當前訪問的客戶端設備類型(iPhone、Android、iPad),然后分別跳轉到不同的下載鏈接。
新建一個靜態頁面,如:download.html;在download.html中布局,分別設置安卓和iOS的下載按鈕指示(避免自動跳轉失敗時可以讓用戶手動選擇點擊下載);在頁面加載完成的事件ready里面(也可不放ready里)添加如下JS腳本;把download.html放到后臺應用服務器的某個能被外網訪問的路徑下;對第四步的訪問路徑生成一個二維碼即可。(生成網址如:草料在線生成二維碼)
<script>/*瀏覽器版本信息*/var browser = {versions: function() {var u = navigator.userAgent, app = navigator.appVersion;return {//移動終端瀏覽器版本信息trident: u.indexOf('Trident') > -1, // IEpresto: u.indexOf('Presto') > -1, // operawebKit: u.indexOf('AppleWebKit') > -1, // 蘋果、谷歌gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, // 火狐mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), // 是否為移動終端ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios終端android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, // android終端或者uc瀏覽器iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, // 是否為iPhone或者QQHD瀏覽器iPad: u.indexOf('iPad') > -1, // 是否iPadwebApp: u.indexOf('Safari') == -1 // 是否web應該程序,沒有頭部與底部};}(),language: (navigator.browserLanguage || navigator.language).toLowerCase()}if (browser.versions.ios || browser.versions.iPhone) {window.location="http://itunes.apple.com/cn/app/id1355618471"; // ios版本的下載地址console.log("ios平臺");}else if (browser.versions.android) {window.location="http://www.ssme.gov.cn/entsrv_cloud/app_update_info/shqyfwy.apk"; // android版本的下載地址console.log("android平臺");}</script>
注意事項:
- 測試時必須在外網環境下,也就是說download.html的存放路徑能被外網訪問,這樣微信掃一掃之后才可能加載出來下載頁面。
- 如果跳轉失敗,請仔細檢查和嘗試使用http和https兩種不同的協議(有三處:跳轉App Store/下載apk/download.html路徑)
總結
以上是生活随笔為你收集整理的项目总结1:微信扫码自动识别设备类型并跳转到相应的应用下载页面(apk或App Store)之解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。