一个二维码通吃 android , ios 下载

25 篇文章 0 订阅
23 篇文章 0 订阅

前言:做出一个产品后,第一步是更方便简洁的让用户可以马上安装上应用,第一步就给用户一个好的体验。二维码已经流行很久,二维码的确给手机输入地址方便了许多许多。

如果 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

得到二维码



来扫一扫?


最后

试一下吧。看到是啥游戏了吗?分享方案的同时,分享游戏给浏览本文的人。帮忙顶一顶。

顺便说一句,我还没真机测试



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值