前言:做出一个产品后,第一步是更方便简洁的让用户可以马上安装上应用,第一步就给用户一个好的体验。二维码已经流行很久,二维码的确给手机输入地址方便了许多许多。
如果 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://www.blmg.cc/ia.html?_majiang_appleAppStore_debug
得到二维码
来扫一扫?
最后
试一下吧。看到是啥游戏了吗?分享方案的同时,分享游戏给浏览本文的人。帮忙顶一顶。
顺便说一句,我还没真机测试