一个二维码通吃 android , ios 下载
来源:互联网 发布:js获取list的size 编辑:程序博客网 时间:2024/05/04 10:32
前言:做出一个产品后,第一步是更方便简洁的让用户可以马上安装上应用,第一步就给用户一个好的体验。二维码已经流行很久,二维码的确给手机输入地址方便了许多许多。
如果 ios 平台和 android 平台都已经发布应用,那么我们怎么用一个二维码来完成它的下载呢。
相关介绍
ios企业版:任意部署和下载的 ios 应用包。不经过 app store 下载。姑且不论苹果允许不允许发布给用户。关于企业版的部署,请看我的其他文章。如果看了后还是有点迷糊,那建议搜其他的看,哈哈,我就摘录几个要点。
实现方案
1. 写一个静态页面(动态页面更好写,不过限于直接拿来就能用,不依赖环境,我这里选择了静态页面)。静态页面用 javaScript 来做实现浏览器的判断以及应用的判断。
2. 用这个静态页面所部署的链接,去度娘上找一个生成二维码的工具,去转换为二维码。
3. 分享二维码。扫描得到地址,自动下载。
具体实现
直接上代码。大学里的毕业作品用了过 javascript ,十年了忘光了,写了三小时终于写好。高手们请指点。
<script type="text/javascript"> //各个应用各个平台的下载地址 ios对应的是企业版地址 //麻将 var iosurl_majiang = "https://dl.dropboxusercontent.com/s/gcb7nkmsjvj32uz/2PMahjong_offical.plist"; var iosAppSotreID_majiang = "724233066";//app store app id var androidurl_majiang = "http://gamedb.oss.aliyuncs.com/blmj.apk"; //斗牛牛 var iosurl_dnn = "0"; var iosAppSotreID_dnn = "0"; var androidurl_dnn = "http://gamedb.oss.aliyuncs.com/dnn.apk"; //百人牛牛 var iosurl_brnn = "0"; var iosAppSotreID_brnn = "0"; var androidurl_brnn = "http://gamedb.oss.aliyuncs.com/brnn.apk"; //飘三叶 var iosurl_psy = "0"; var iosAppSotreID_psy = "0"; var androidurl_psy = "http://gamedb.oss.aliyuncs.com/zjh.apk"; //赚 var iosurl_znm = "https://dl.dropboxusercontent.com/s/q4zwt3ecdxv5gn1/Treasure_offical.plist"; var iosAppSotreID_znm = "0"; var androidurl_znm = "http://znm"; var appid = getappid(); //应用属性 var appPropertys = [ ["未知应用","http://www.blmg.cc" ,"http://www.blmg.cc" ,"http://www.blmg.cc" ], ["百灵麻将",iosurl_majiang , androidurl_majiang , iosAppSotreID_majiang], ["斗牛牛", iosurl_dnn , androidurl_dnn , iosAppSotreID_dnn], ["百人牛牛", iosurl_brnn , androidurl_brnn , iosAppSotreID_brnn], ["飘三叶", iosurl_psy , androidurl_psy , iosAppSotreID_psy], ["赚你妹", iosurl_znm , androidurl_znm , androidurl_znm] ]; var platform = "未知平台"; var desc = "应用识别不出"; var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { //移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 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 , //是否为iPhone或者QQHD浏览器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部 }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase() } window.onload =function(){ if(browser.versions.mobile) { //移动终端 if(browser.versions.iPhone || browser.versions.ios || browser.versions.iPad ) { url = appPropertys[appid][1]; var jumpurl = encodeURIComponent(url); //查找是去下载企业版还是去app store 下载 var u=window.location.href; var index_store = u.indexOf("_appleAppStore");//查找市场下载的标示 if(index_store != -1) { var appstoreUrl = "https://itunes.apple.com/us/app/id"+appPropertys[appid][3]+ "?mt=8"; location.href=appstoreUrl; } else { location.href="itms-services://?action=download-manifest&url="+jumpurl; } desc = "iphone"; // } else if(browser.versions.android) { url = appPropertys[appid][2]; // var jumpurl = encodeURIComponent(url); //location.href=jumpurl; location.href=url; desc = "android"; } else { url = appPropertys[appid][0]; location.href="http://www.blmg.cc"; desc = "未知"; } } else { var u=window.location.href; var index_store = u.indexOf("_appleAppStore");//查找市场下载的标示 if(index_store != -1) { var appstoreUrl = "https://itunes.apple.com/us/app/id"+appPropertys[appid][3]+ "?mt=8"; location.href=appstoreUrl; } else { url = appPropertys[appid][0]; desc = "web"; } //web 终端 //location.href="http://www.blmg.cc"; } platform = appPropertys[appid][0]; } function print_out( ) { var u=window.location.href; var index_store = u.indexOf("_debug");//查看是否有 debug 宏 if(index_store != -1) {document.writeln("<br>"); document.writeln("<br>"); document.writeln("语言版本: "+browser.language); document.writeln("<br>"); document.writeln(" 是否为移动终端: "+browser.versions.mobile); document.writeln("<br>"); document.writeln(" ios终端: "+browser.versions.ios); document.writeln("<br>"); document.writeln(" android终端: "+browser.versions.android); document.writeln("<br>"); document.writeln(" 是否为iPhone: "+browser.versions.iPhone); document.writeln("<br>"); document.writeln(" 是否iPad: "+browser.versions.iPad); document.writeln("<br>"); document.writeln(navigator.userAgent); document.writeln("<br>"); document.writeln("应用识别: " + appPropertys[appid][0] ); document.writeln("<br>"); document.writeln("ios: " + appPropertys[appid][1] ); document.writeln("<br>"); document.writeln("android: " + appPropertys[appid][2] ); document.writeln("<br>"); } } function getappid() { var u=window.location.href; var index_majiang = u.indexOf("_majiang");//麻将地址 var index_dnn = u.indexOf("_dnn");//斗牛牛地址 var index_brnn = u.indexOf("_brnn");//百人牛牛地址 var index_psy = u.indexOf("_psy");//za金花地址 var index_znm = u.indexOf("_znm");//za金花地址 var appid = 0; if(index_majiang !=-1) { appid = 1; } else if(index_dnn != -1) { appid = 2; } else if(index_brnn != -1) { appid = 3; } else if(index_psy != -1) { appid = 4; } else if(index_znm != -1) { appid = 5; } return appid; } </script> <!-- saved from url=(0025)http://www.blmg.cc/e.html --> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一键安装</title> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport"> </head> <body> 加载中...请稍后<br> <br> <script language="javascript" > if(browser.versions.iPhone || browser.versions.ios || browser.versions.iPad ) { document.writeln("如果长时间没有弹出安装提示,请点击右上角菜单:使用safari 浏览器打开"); } else if(browser.versions.android) { document.writeln("如果长时间没有弹出安装提示,请点击右上角菜单:使用系统(其他)浏览器打开"); } else if(browser.versions.webApp) { document.writeln("正在打开....^_^"); } else { document.writeln("正在打开....O(∩_∩)O~"); } print_out(); </script> </body> </html>
URL的生成
假设部署这个网页的地址是: http://www.blmg.cc/ia.html
如果要生成百灵麻将游戏的链接,在这个地址后面加上游戏标示 _majiang,即 http://www.blmg.cc/ia.html?_majiang
这个链接支持 ios 的企业版和 android 版的下载。用这个地址去创建二维码吧!
如果要生成这个游戏的 appstore 的链接,那就在后面再加一个 _appleAppStore , 即 http://www.blmg.cc/ia.html?_majiang_appleAppStore 。然后用这个地址生成二维码。
刚想了下,这个举动真是多余,哎,直接拿苹果的实际链接地址去生成好了,不用这个方式。这个有点多余。无所谓了。用也可以,不用也行。
如果碰到了不能正常识别的浏览器,比如android的某个手机浏览器,不能下载。那么把调试日志打开,即在 url 后面加上 _debug . 即:
http://www.blmg.cc/ia.html?_majiang_appleAppStore_debug
可以看到一些浏览器的信息
二维码的生成
网上有很多网站可以在线生成二维码,我用了这个:
http://cli.im/
填入链接地址 http://www.blmg.cc/ia.html?_majiang_appleAppStore_debug
得到二维码
来扫一扫?
最后
试一下吧。看到是啥游戏了吗?分享方案的同时,分享游戏给浏览本文的人。帮忙顶一顶。
顺便说一句,我还没真机测试
- 一个二维码通吃 android , ios 下载
- 腾讯微下载android和ios共用一个二维码
- Android和iOS应用下载实现合成一个二维码
- 一个二维码实现IOS和android两个平台的下载核心代码
- 用一个二维码做下载地址,自动区分是 ios 还是 android
- 用一个二维码做下载地址,自动区分是 ios 还是 android
- 用一个二维码做下载地址,自动区分是 ios 还是 android
- 用一个二维码做下载地址,自动区分是 ios 还是 android
- 用一个二维码做下载地址,自动区分是 iOS 还是 Android
- 用一个二维码做下载地址,自动区分是 ios 还是 android, 甚至区分 iphone 和 ipad。
- 二维码跳转android或ios下载app中转处理
- ios和android的下载二维码使用同一个
- IOS APP 制作二维码 下载
- JavaScript制作一个二维码适配android和Ios
- ios打包 蒲公英生成二维码扫描下载
- 一个二维码扫描自动识别下载应用
- 一个二维码,苹果安卓两种下载方案
- 移动开发领域,一种语言通吃多个开发平台Windows Phone/Android/iOS-介绍猴子平台。
- 部分函数备忘
- 数据库分库分表(sharding)系列(四) 多数据源的事务处理
- AS3 Starling 塔防教程——第一部分——外部文件加载
- mongodb
- C# sqlite
- 一个二维码通吃 android , ios 下载
- Asp.Net页面生命周期
- ANDROID 如何适配屏幕
- 16 个 Linux 服务器监控命令
- 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
- 【安卓笔记】ViewPager+Fragment布局中的Fragment数据更新
- dojo单柱状图
- asp.net webform中的相对地址和绝对地址
- webbrowser获取和设置变量的值