zoukankan      html  css  js  c++  java
  • 二维码跳转不同的 app store

    说道二维码 之前是用来跳转app store  然后在就是出来的 扫码付款什么的  

    用的很平常,其实里面也很简单   自己刚开始接触的时候     同事说要做一个二维码下载 应用 => 我=懵逼 

    会看到大家把android 和ios 的二维码并排放在一起 我们的产品ios先出来的  就先放了一个二维码 (毕竟可以二合一呗)

    什么鬼  二维码是个什么 ?

    还要根据不同的平台 ?

    还要取是什么浏览器打开的这个 ?

    还要判断是不是wechat? 我的天 !!!!

    作为刚出校门的小菜鸟 不懂就得问啊  在学校里那都是 舅舅不疼 姥姥不爱的  关于这技术  以前暑假的时候晓得一点

    NO :1

    就是那其实二维码 就是一个 URL 地址  

    说道平台 大家一定会想到 什么 mac地址什么的  但是好像浏览器也屏蔽掉了 

    这可咋办呢 ? 

    还是自己看着经理去抽烟的时候 这不 菜鸟不知道怎么办 只能以拉家常的方式去和经理说说技术

    me : 老大 ,那做二维码跳转  怎么知道他是什么平台的呢 ? 怎么获取到机型呢?

    老大: 这个很简单的  你根据浏览器的报头去做就好了,其实扫描到了二维码之后 读取到了  手机会调用浏览器去访问该网址 ,

    ios的则会调用 safair android的则会调用chrome  虽然还有什么uc ,opera  难免的会有些误差。 你自己琢磨吧!

    me : 那好吧 !

    找找查查 就是 navigator.userAgent  navigator.appVersion

    接着就是考虑在后台处理还是在前台  

    算了 还是前台判断吧 

     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,//苹果、谷歌内核
                       safari:u.indexOf("Safari")>-1, //safari 浏览器
                       gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
                       mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
                       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 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
                       iPad: u.indexOf('iPad') > -1, //是否iPad
                       wechat:u.toLowerCase().match((/MicroMessenger/i) == 'micromessenger'),
                       webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
                   };
               }(),
               language: (navigator.browserLanguage || navigator.language).toLowerCase()
           }
           var explore;
           if (browser.versions.trident)
           {
               explore = 'IE';
           } else if (browser.versions.presto)
           {
               explore = 'Opera';
           } else if (browser.versions.webKit) {
               explore = 'chrome';
           } else if (browser.versions.gecko)
           {
               explore = 'FireFox';
           } else if (browser.versions.safari)
           {
               explore = 'safarir';
           }
         
           if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {         
               alert('ios手机');           
               $.ajax({
                   url: "DataInsert.ashx?Explore=" + explore + "&device=ios&deviceappVersion=" + navigator.appVersion,
                   type: "post",
                   success: function (data)
                   {
                       if (data == "success")
                       {
                           location.href = "http://www.apple.com/cn/ios/";
                       }
                   }, error: function (errorMsg) {
                       //请求失败时执行该函数
                       alert("数据异常");                   
                   }
               });
           }
           else if (browser.versions.android) {
               alert('安卓手机');
               $.ajax({
                   url: "DataInsert.ashx?Explore=" + explore + "&device=Android&deviceappVersion=" + navigator.appVersion,
                   type: "post",
                   success: function (data) {
                       if (data == "success") {
                           location.href = "http://www.android-studio.org/"; //这里就给了一个学习网站 哈哈
                       }
                   }, error: function (errorMsg) {
                       //请求失败时执行该函数
                       alert("数据异常");
                   }
               });
           
           } else if (browser.versions.wechat)
           {
               $.ajax({
                   url: "DataInsert.ashx?Explore=" + explore + "&device=wechat&deviceappVersion=" + navigator.appVersion,
                   type: "post",
                   success: function (data) {
                       if (data == "success") {
                           location.href = "http://weixin.qq.com/";
                       }
                   }, error: function (errorMsg) {
                       //请求失败时执行该函数
                       alert("数据异常");
                   }
               });
               alert('微信');
    
           }

    这都获取的很详细了吧  

    在异步里去拼接  判断什么 浏览器 什么机型  wechat 什么的  都是妥妥的了 。

  • 相关阅读:
    Java并发容器和线程池
    CountDownLatch、CyclicBarrier
    spring data jpa
    转换时间的工具类(1)
    swagger 报错: TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot h
    自动生成entry-mapper-service-controller
    Hutool工具包导出Excel文件异常 You need to add dependency of poi-ooxml to your project
    Java获取24小时制的时间方法
    查询全国城市行政区
    Java对象与Json字符串之间的转化
  • 原文地址:https://www.cnblogs.com/SWSHBON/p/5712207.html
Copyright © 2011-2022 走看看