`
小龟爬爬
  • 浏览: 5152 次
  • 性别: Icon_minigender_1
  • 来自: 不详
社区版块
存档分类
最新评论

利用浏览器 UA 信息解决多平台手机应用下载问题

阅读更多

 

1、问题:

公司合作伙伴提出,希望公司提供一个二维码,实现用户在扫描二维码以后 android 直接下载对应 apk 文件,而 ios 平台能直接跳转至 itunes 软件显示页。

 

2、初步方案:

合作伙伴的要求其实是要求一个下载地址,可以提供多平台手机应用的下载。我们可以在二维码里面放置一个静态页面,而在这个静态页面可以根据用户的 UA 信息,进行不同的操作。

1)获取用户的 UA 信息;

2)判断 用户为 ios 或者 mac 系统时,跳转至软件对应 itunes 页面;

3)其他情况直接下载对应 apk 文件。


代码如下:

 

<script type="text/javascript">
	var android = 'http://q.kuaipai.cn/quickpai.apk';
	var ios = 'http://itunes.apple.com/cn/app/id519048827?mt=8';
	var ua = navigator.userAgent.toLowerCase();  

	var isandroid=1;

	if (ua.indexOf('iphone') > 0) {
		isandroid = 0;
	} else if (ua.indexOf('mac os') > 0) {
		isandroid = 0;
	} 	      

	if (isandroid == 1) {
		window.location.href= android;
	} else {
		window.location.href= ios;
	}
</script>

 


3、升级方案:

初步解决方案只对 UA 进行了初步的判断,整理逻辑也不够正确。如果用户是在 mac 环境中使用 android 手机,或者是结合 windows 系统使用 iphone ,都会出现不符合用户期望结果的发生。

1)获取用户的 UA 信息;

2)判断 用户为 ios 系统时,跳转至软件对应 itunes 页面;

3)判断 用户为 android 系统时,直接下载 apk 文件;

4)其他情况不做跳转,在静态页面上同时显示软件对应 itunes 页面连接和 apk 软件下载地址供用户自己选择。


代码如下:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>北京灵动快拍信息技术有限公司</title>
</head>
<body>
<script type="text/javascript">
	var android_down_url = 'http://q.kuaipai.cn/quickpai.apk';
	var ios_down_url = 'http://itunes.apple.com/cn/app/id519048827?mt=8';

	var ua = navigator.userAgent.toLowerCase();  
	if (ua.indexOf('iphone') > 0) {						//需对所有 ios 系统 UA 信息进行判断
		window.location.href = ios_down_url;
	} else if (ua.indexOf('android') > 0) {				//需对所有 android 系统 UA 信息进行判断
		window.location.href = android_down_url;
	} 
</script>
<a href="http://q.kuaipai.cn/quickpai.apk">点击下载“快拍二维码” android 版</a>
<a href="http://itunes.apple.com/cn/app/id519048827?mt=8">点击下载“快拍二维码” iphone 版</a>
</body>
</html>

 

四平台首发:
个人博客 http://xiaogui.org/one-page-down-the-app.html
CSDN博客 http://blog.csdn.net/xgpapa/article/details/8011622
博客园  http://www.cnblogs.com/xgpapa/archive/2012/09/24/2699623.html
ItEye博客  http://xgpapa.iteye.com/blog/1684090

1
1
分享到:
评论

相关推荐

    判断浏览器的版本等信息

    除了判断浏览器类型和版本,我们还可以获取更多关于浏览器的信息,如平台、编码名称、是否支持cookies等。以下是一个示例: ```javascript document.write("Browser name: " + navigator.appName); document....

    TLN13UA06开发手册

    在快速使用向导部分,手册介绍了如何快速组建测试平台,包括平台的组建原理、搭建过程以及收发测试,还有如何通过网页浏览器或配置管理程序进行模块的参数配置。其中,特别强调了模块的串口透明数据传输模式,可以...

    前端开源库-node-opcua-vendor-diagnostic

    "节点opcua供应商诊断"表明该库专注于处理OPC UA中的供应商特定问题,帮助开发者检测和解决由供应商引发的故障或性能问题。"纯nodejs opcua sdk"说明这个SDK完全用Node.js编写,可以在Node.js环境中运行,无需依赖...

    ICONICS+工业自动化和信息化软件解决方案2022版参考.pdf

    ICONICS的面向Web应用的OPC解决方案具有统一的开发平台,可以针对多种操作系统进行多重目标应用开发,简化了OEM和最终用户的开发过程。此外,它们支持主流数据库如Oracle和SQL Server,还可在Embedded CE和Embedded ...

    JavaScript判断浏览器运行环境的详细方法

    在本文中,我们将深入探讨如何利用JavaScript来判断浏览器的运行环境,以便更好地适配各种设备和浏览器特性。 首先,我们要了解的是用户代理(UserAgent)字符串。UserAgent是一个特殊的字符串,由浏览器发送给...

    基于vue项目下PC端和移动端实现的自适应.zip

    8. **第三方库**:除了Vue自身的特性,还可以借助第三方库如`detect-browser`或`ua-parser-js`来检测用户设备和浏览器信息,进一步优化用户体验。 9. **服务端渲染(SSR)**:对于SEO优化和首屏加载速度,Vue还可以...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了...

    js识别uc浏览器的代码

    通过JavaScript(简称JS)来检测浏览器类型是一种常见的解决方案。 #### 二、核心代码解析 首先,我们来看一下如何通过JS简单地判断用户是否使用的是UC浏览器: ```javascript if (navigator.userAgent.indexOf('...

    易语言-微店ua算法开源

    你可以通过阅读和理解源码,了解UA识别的实现细节,包括如何解析和分析UA字符串,如何根据UA信息进行设备和浏览器的分类,以及如何利用这些信息优化微店的应用表现。 这个开源项目可能包含以下几个部分: 1. **UA...

    Web移动应用框架构想.docx

    2. **主流手机浏览器兼容性**:面对多样化的手机平台和浏览器,框架需要能够适应不同设备,包括iPhone、iPad、Android、Windows Phone以及国内常见的QQ手机浏览器和UCWeb。通过识别浏览器特性而不是依赖UA字符串,...

    行业分类-设备装置-多硫化物的分解和硫化氢的去除.zip

    这意味着软件开发者需要遵循多平台开发标准,如Web应用的HTML5、CSS3和JavaScript,或者使用跨平台框架如React Native、Flutter等。同时,为了确保数据的安全传输和存储,设备间的通信协议也应支持多种标准,如TCP/...

    ua-web-challenge-reddit-viewer:用于 UA WebChallenge simefinal 的 Reddit 查看器应用程序

    总结起来,"ua-web-challenge-reddit-viewer"项目是一个用JavaScript构建的Web应用,它利用Reddit API获取并展示内容,同时考虑了前端交互、用户体验、数据处理和安全等方面,是一个全面展示前端开发技能的实例。

    Webaccess物联网解决方案.pdf

    研华WebAccess物联网解决方案是为实现物联网应用而设计的核心软件平台,它提供了全面的架构和功能,以满足各种行业在物联网领域的需求。该解决方案强调其基于HTML5的商业智能仪表板,这使得用户可以通过现代浏览器...

    CVR100U&D BS开发包

    《华视电子BS控件V4.0开发详解》 ...同时,其优秀的兼容性和安全性保证了应用在多平台、多环境下的稳定运行。开发者可以根据实际需求,灵活运用这个开发包,创建出满足特定业务场景的智能读卡器应用。

    UserAgent.txt

    3. **安全防护**:一些高级的网络安全系统会利用用户代理信息识别潜在的恶意软件或者爬虫行为,保护网站安全。 4. **SEO优化**:搜索引擎根据用户代理信息决定是否索引网页内容,以及如何排名,这在一定程度上影响了...

    JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)

    在“JavaScript学习笔记之检测客户端类型”这个主题中,我们将深入探讨如何利用JavaScript来识别访问网页的客户端信息,包括浏览器渲染引擎、浏览器类型、操作系统平台、移动设备以及游戏系统。 1. **识别呈现引擎*...

    python-gui-programming-cookbook-2nd.zip_Python-GUI_him8ua_python

    而PyQt和wxPython则提供了更丰富、更复杂的组件和更接近原生平台的外观,适用于开发复杂的跨平台应用。Kivy则专注于触摸输入和多点触控,尤其适用于移动设备和嵌入式系统,如树莓派(Raspberry Pi)。GTK+是一个广泛...

    IE10兼容性白皮书

    为了测试和调试网站在IE10中的兼容性,白皮书还推荐使用一系列工具,如Compat Inspector、验证器、调试器等,帮助开发者快速定位和解决问题。 为了让网站在IE10上提供更加酷炫的体验,白皮书还介绍了一些高级技巧,...

    西门子WINCC组态软件工程应用技术

    - **多协议支持**:兼容PROFIBUS、PROFINET、OPC-UA等多种工业通讯协议。 - **跨平台操作**:除了Windows操作系统外,还支持在Web浏览器中访问和操作,实现了远程监控的需求。 ##### 4. 安全性与稳定性 - **用户...

Global site tag (gtag.js) - Google Analytics