php 判断app浏览器打开,手机浏览器下判断是否安装某app,并判断是否打开该应用...
今天在做前端输出的时候,需要和app的做些对接工作。就是在手机浏览器中下载某app时,能判断该用户是否安装了该应用。如果安装了该应用,就直接打开该应用;如果没有安装该应用,就下载该应用。
那么下面就对在浏览器中,用js判断某用户是否安装了该应用,并判断是否打开该应用做个简单的介绍。
那么,怎么判断某用户是否安装了某应用呢?
在这里,先写段html代码,如下:
判断手机端是否安装某应用,并打开该应用的js代码如下:
function isInstalled(){
var the_href=$(".down_app").attr("href");//获得下载链接
window.location="apps custom url schemes";//打开某手机上的某个app应用
setTimeout(function(){
window.location=the_href;//如果超时就跳转到app下载页
},500);
}
apps custom url schemes是什么
apps custom url schemes 是WAP端和APP端约定好的一个协议URL,如:
web2app://
和正常的URL一样,除了protocol部分外,也可以有host、path及参数,如:
web2app://openapp?type=1&id=12
具体要看各端约定,不过个人建议最好还是按照URL的组成规范来定义scheme,不然会引入由于URL不规范而导致的各种编码问题。
2.注册URL Scheme
安卓端:
(一般是在manifest.xml文件的activity的intent filter里面)
android:scheme="**"
android:host="**.**"
android:pathPrefix="/**">
苹果端:
3.web 前端调用:
前端通过:
window.location="url schemes://";//打开某手机上的某个app应用
便可直接调用打开应用。
希望传参的话可以通过以下方式
window.location="URL Schemes://URL identifier";
//打开某手机上的某个app应用并传参URL identifier
以上介绍了怎么创建该本地协议及调用该本地协议的方法。但这里还有个关键就是怎么判断用户是否安装了该app呢?原理如下:
在手机浏览器中用js代码请求该协议,如果在500ms内,如果有应用程序能解析这个协议,那么就能打开该应用;如果超过500ms就跳转到app下载页。
URL Scheme存在的问题
IOS9.0以上弹确认框的问题。
在IOS9.0以上版本中,WAP端打开协议URL,如果已安装APP,会弹出如下图所示的确认框。
大部分情况下,用户点击“打开”APP之前,页面直接刷新跳转到WAP下载页,导致打开APP失败。这就是IOS9.0以上不能用scheme实现需求的主要原因。如果手机上未安装APP,WAP端打开协议URL,会弹出无效URL的弹窗,也会影响用户体验。
跳转下载页问题。
由于跳转到下载页由前端定时器触发,在所有的andriod机以及部分IOS机器上,打开APP后,WAP页还是会被定时跳转到下载页。
通用链接实现方案
什么是Universal Links(通用链接)?
这是iOS9推出的一项功能,如果你的应用支持Universal Links(通用链接),那么就能够方便的通过传统的HTTP链接来启动APP(如果iOS设备上已经安装了你的app,不需要额外做任何判断等),或者打开网页(iOS设备上没有安装你的app)。或许可以更简单点来说明,
在iOS9之前,对于从各种从浏览器,Safari、UIWebView或者 WKWebView中唤醒APP的需求,我们通常只能使用scheme。
具体实现方式请见
通用链接实现方案
php 判断app浏览器打开,手机浏览器下判断是否安装某app,并判断是否打开该应用...相关推荐
- JS判断是电脑浏览器还是手机浏览器?
JS判断是电脑浏览器还是手机浏览器? <script type=text/javascript>document.write('你的浏览器标识:',navigator.userAgent, ...
- 用火狐浏览器模拟手机浏览器客户端的方法
用火狐浏览器模拟手机浏览器客户端的方法: 1.首先打开火狐浏览器的工具下面的附加组件下载一个User Agent Switcher组件安装(如果已有就不用下载了) 2.重新启动浏览器 3.打开工具可以 ...
- 安卓 用linux 内核浏览器,为什么安卓手机没有IE浏览器?手机浏览器是基于什么内核?...
细心的人会发现目前电脑上的浏览器,多数是基于IE内核,而安卓手机却没有手机版IE浏览器.那么,问题来了.为什么安卓手机没有IE浏览器,手机浏览器是基于什么内核,小编马上解答. 为什么安卓手机没有IE浏 ...
- JS实现识别电脑浏览器和手机浏览器
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" Content ...
- js判断移动终端(手机浏览器)
方法1: <script type= "text/javascript" > var browser = { versio ...
- android 小工具:pc 上用 curl 命令打开手机浏览器,浏览指定网址
测试 API 时或其它情况经常需要在手机浏览器中输入 url 一长串的 url 输起来真是麻烦 AirDroid 很强大也不用数据线,但有时老断开连接,不是很爽.发到手机 qq 吧还得手动粘贴 所以自 ...
- 新版手机浏览器_Firefox手机浏览器app下载安装_Firefox手机浏览器软件最新版免费下载...
Firefox移动浏览器是一个熟悉的浏览器应用程序. PC端的Firefox浏览器很受公众欢迎. 现在,Firefox移动浏览器仍在移动侧,可为用户提供方便快捷的Web浏览体验. 如果您喜欢,请尝试! ...
- 支持html5安卓手机浏览器,百度手机浏览器强劲内核 完美支持HTML5
手机浏览器由于距离用户最近,也是向用户推荐应用最便捷的通道,因此不同品牌的浏览器间的战火早已硝烟弥漫.9月3日,在2012百度世界大会上,百度手机浏览器2.2全新版本作为重磅产品闪亮登场.新版的百度手 ...
- 用电脑浏览器模拟手机浏览器
最近开发手机网站,需要测试不同的手机,比较麻烦,所以想到了用电脑浏览器来模拟手机浏览. 在网上找了些资料,在些方便有需要的朋友. 1.用谷歌Chrome浏览器: 在Windows的[开始]--> ...
最新文章
- HUD 5687(字典树)
- 梯度下降回归SGDRegressor、岭回归(Ridge)和套索(Lasso)回归、套索最小角回归、ElasticNet回归、正交匹配追踪回归
- 解决“The type initializer for‘Oracle.DataAccess.Client.OracleConnection‘ threw an exception ”异常
- mybatis mysql 配置文件详解_Mybatis的配置文件参数详解
- cocos2d-x游戏实例(9)-A星算法(5)
- libuuid 安装
- SAP UI5 local sandbox bootstrap的执行细节
- Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法
- 小心使用STL中map的[]操作符
- python3.8.0安装_Python3.8.0
- java websocket下载_java-websocket.jar免费版
- 请问我应该怎么做,才能让前端的基础打牢固?
- launchpad不用图标_Launchpad Manager,一款非常方便的启动台图标管理工具
- [转帖]三大运营商2G/3G/4G频率分配和网络制式
- jquery选择器通配符
- 小学音乐教学和计算机的融合,【多媒体技术论文】小学音乐多媒体教学融入策略问题(共5881字)...
- adb查看某个文件是否存在_android – 使用ADB检查目录是否存在,如果存在则推送文件...
- 勾股定理的html代码,有趣的数学——勾股定理
- 计算机第二学期末考试题,离散数学期末考试试题及答案
- Spark SQL的selectExpr用法