iOS和Android用同一個二維碼實(shí)現(xiàn)跳轉(zhuǎn)下載鏈接的方法
前言
最近一個項(xiàng)目需要iOS和安卓使用一個二維碼,讓掃描的機(jī)器自己識別操作系統(tǒng)實(shí)現(xiàn)跳轉(zhuǎn)到相應(yīng)的下載鏈接。比如iPhone用微信進(jìn)行掃描就讓他跳轉(zhuǎn)appStore的下載頁面,安卓機(jī)器使用微信掃描就直接跳瀏覽器下載。但是這二維碼還有一個需求就是,用戶已經(jīng)下載了這個app,當(dāng)用戶打開app進(jìn)入到注冊頁面時,再次掃描這個二維碼時,自動填寫邀請碼進(jìn)行注冊。那么該如何實(shí)現(xiàn),細(xì)節(jié)就不說了,直接上代碼。
使用js實(shí)現(xiàn),其實(shí)代碼非常簡單.
使用時直接拷貝代碼,改掉相應(yīng)的鏈接就好。
PS:該鏈接在微信環(huán)境打開時還是需要手動跳轉(zhuǎn)到手機(jī)的瀏覽器才能跳到下載頁面,因?yàn)槲⑿艃?nèi)的webView比較特別,所以寫了一個alert引導(dǎo)用戶打開瀏覽器。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> /** 出來的鏈接大概是長這樣的 http://xxxx.cn/243423.html?c=Q23DR32 */ // c=Q23DR32是注冊時掃描獲取的邀請碼。 // 這樣加參數(shù),后面的參數(shù)會被自動忽略,不會影響加載此網(wǎng)頁 goDownload(); // 去下載 function goDownload() { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // 是安卓瀏覽器 if (isAndroid) { window.location.; // 跳安卓端下載地址 } // 是iOS瀏覽器 if (isIOS) { window.location.; // 跳AppStore下載地址 } // 是微信內(nèi)部webView if (is_weixn()) { alert("請點(diǎn)擊右上角按鈕, 點(diǎn)擊使用瀏覽器打開"); } // 是PC端 if (IsPC()) { window.location.; // 公司主頁 } } // 是微信瀏覽器 function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; } } function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; var flag = true; for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; } } return flag; } </script> </body> </html>
總結(jié)
以上就是iOS和Android用同一個二維碼實(shí)現(xiàn)跳轉(zhuǎn)下載鏈接的方法,大家都學(xué)會了嗎,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有更好的解決方案或可以通過代碼判斷微信客戶端的系統(tǒng)環(huán)境的方法請留言交流。
- Android實(shí)現(xiàn)二維碼掃描和生成的簡單方法
- Android上使用ZXing識別條形碼與二維碼的方法
- Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問題
- Android項(xiàng)目實(shí)戰(zhàn)(二十八):使用Zxing實(shí)現(xiàn)二維碼及優(yōu)化實(shí)例
- 基于Android實(shí)現(xiàn)個性彩色好看的二維碼
- Android基于google Zxing實(shí)現(xiàn)各類二維碼掃描效果
- Android 二維碼 生成和識別二維碼 附源碼下載
- Android平臺生成二維碼并實(shí)現(xiàn)掃描 & 識別功能
- Android編程實(shí)現(xiàn)二維碼的生成與解析
- Android掃描和生成二維碼
相關(guān)文章
JavaScript清空數(shù)組元素的兩種方法簡單比較
這篇文章主要介紹了JavaScript清空數(shù)組元素的兩種方法簡單比較,羅列了幾種常見的情況javascript數(shù)組的方法,并且比較了其中的兩種常見方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07JavaScript中停止執(zhí)行setInterval和setTimeout事件的方法
這篇文章主要介紹了JavaScript中停止執(zhí)行setInterval和setTimeout事件的方法,本文給出操作實(shí)例代碼和語法介紹,需要的朋友可以參考下2015-05-05JS使用cookie實(shí)現(xiàn)DIV提示框只顯示一次的方法
這篇文章主要介紹了JS使用cookie實(shí)現(xiàn)DIV提示框只顯示一次的方法,涉及JavaScript基于cookie標(biāo)記控制頁面元素樣式修改的技巧,需要的朋友可以參考下2015-11-11javascript使用Blob對象實(shí)現(xiàn)的下載文件操作示例
這篇文章主要介紹了javascript使用Blob對象實(shí)現(xiàn)的下載文件操作,結(jié)合實(shí)例形式分析了javascript使用Blob對象下載文件相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下2020-04-04找出字符串中出現(xiàn)次數(shù)最多的字母和出現(xiàn)次數(shù)精簡版
找出字符串中出現(xiàn)次數(shù)最多的字母和出現(xiàn)次數(shù)精簡版,有需求的朋友可以參考下2012-11-11attachEvent的使用方法與傳遞參數(shù)[IE|firefox]
attachEvent的使用方法與傳遞參數(shù)[IE|firefox]...2007-05-05