二维码跳转不同的 app store
2024-10-13 04:18:10
说道二维码 之前是用来跳转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 什么的 都是妥妥的了 。
最新文章
- spring源码分析之@ImportSelector、@Import、ImportResource工作原理分析
- C#中一些常用的加密和哈希处理
- javamail 发送附件
- volley_缓存介绍
- [Tool] 取得APP的Store URL Scheme (Android、iOS)
- android通话时第二通电话呼叫等待提示音音量大小
- 由linux下的多进程编程引发的关于进程间隔离的思考
- selenium + python 添加等待时间
- 【Python】一个简单的例子
- linux 下各个工具使用(screen、tmux,pyenv、virtualenv,pip国内源,tree)
- 优化DB2缓冲页的大小
- 《JAVA编程那点事儿》读书笔记(二)——类和对象
- 新增html元素的使用
- hadoop深入研究:(十八)——Avro schema兼容
- Ext.grid.EditorGridPanel分页和查看全部
- Windows 下安装drozer(Windows 10),连接手机(红米note4X)
- REST(Representational state transfer)的四个级别以及HATEOAS介绍
- 105. Construct Binary Tree from Preorder and Inorder Traversal根据前中序数组恢复出原来的树
- linux debian 9 / centos 7配置postgresSQL数据库
- 理解Java反射