一个二维码通吃 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

得到二维码



来扫一扫?


最后

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

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



0 0
原创粉丝点击