项目需求:扫码根据不同平台下载不同版本的APP。主要是ios和Android。
网上找了很多,前面判断平台的代码很容易找到,但是后面的就有些坑了。有的人的是根本跑不通。有的是代码补全。
下面是 微信扫码下载APP。(iOS版)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>下载APP</title> 8 </head> 9 <body> 10 11 </body> 12 <script> 13 // 判断是不是 ios 设备 14 function checkIsAppleDevice() { 15 let u = navigator.userAgent, 16 app = navigator.appVersion; 17 console.log('u======', u); 18 console.log('app=======', app) 19 let ios = !!u.match(/\i[^;]+;( U;)? CPU.+Mac OS X/); 20 let iPad = u.indexOf('iPad') > -1; 21 let iPhone = u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1; 22 if(ios || iPad || iPhone) { 23 return true; 24 } else { 25 return false; 26 } 27 } 28 // alert( checkIsAppleDevice() ) 29 30 // 判断是不是 Android 设备 31 function checkIsAndroidDevice() { 32 let u = navigator.userAgent; 33 // console.log(u); 34 if(u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 ) { 35 return true; 36 } else { 37 return false; 38 } 39 } 40 41 42 if (checkIsAppleDevice()) { 43 // alert('苹果手机') 44 window.location.href = 'https://apps.apple.com/us/app/APP的包名/id+ID号?l=zh&ls=1' 45 } else { 46 // alert('安卓手机') 47 // 安卓手机暂时没跑通,不写 48 } 49 50 function isWinxin() { 51 var ua = window.userAgent.toLowerCase(); 52 if(ua.match(/MicroMessenger/i) == 'micromessenger') { 53 return true; 54 } else { 55 return false; 56 } 57 } 58 59 // http://www.qianhengnet.com/jeesite/static/download.html 60 61 </script> 62 </html>
将上面的页面放到服务器上,然后将地址生成一个二维码,再扫描就可以了。
上面苹果手机的 链接是可以从提交APP的官网获得的。
获得 链接:
新打开的页面就是:
这就是代码中链接的由来。
iOS的就可以成功了。安卓的比较麻烦还没找到好的方法。