今天在做前端输出的时候,需要和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,并判断是否打开该应用...相关推荐

  1. JS判断是电脑浏览器还是手机浏览器?

    JS判断是电脑浏览器还是手机浏览器? <script type=text/javascript>document.write('你的浏览器标识:',navigator.userAgent, ...

  2. 用火狐浏览器模拟手机浏览器客户端的方法

    用火狐浏览器模拟手机浏览器客户端的方法: 1.首先打开火狐浏览器的工具下面的附加组件下载一个User Agent Switcher组件安装(如果已有就不用下载了) 2.重新启动浏览器 3.打开工具可以 ...

  3. 安卓 用linux 内核浏览器,为什么安卓手机没有IE浏览器?手机浏览器是基于什么内核?...

    细心的人会发现目前电脑上的浏览器,多数是基于IE内核,而安卓手机却没有手机版IE浏览器.那么,问题来了.为什么安卓手机没有IE浏览器,手机浏览器是基于什么内核,小编马上解答. 为什么安卓手机没有IE浏 ...

  4. JS实现识别电脑浏览器和手机浏览器

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" Content ...

  5. js判断移动终端(手机浏览器)

    方法1: <script type= "text/javascript" >          var  browser = {              versio ...

  6. android 小工具:pc 上用 curl 命令打开手机浏览器,浏览指定网址

    测试 API 时或其它情况经常需要在手机浏览器中输入 url 一长串的 url 输起来真是麻烦 AirDroid 很强大也不用数据线,但有时老断开连接,不是很爽.发到手机 qq 吧还得手动粘贴 所以自 ...

  7. 新版手机浏览器_Firefox手机浏览器app下载安装_Firefox手机浏览器软件最新版免费下载...

    Firefox移动浏览器是一个熟悉的浏览器应用程序. PC端的Firefox浏览器很受公众欢迎. 现在,Firefox移动浏览器仍在移动侧,可为用户提供方便快捷的Web浏览体验. 如果您喜欢,请尝试! ...

  8. 支持html5安卓手机浏览器,百度手机浏览器强劲内核 完美支持HTML5

    手机浏览器由于距离用户最近,也是向用户推荐应用最便捷的通道,因此不同品牌的浏览器间的战火早已硝烟弥漫.9月3日,在2012百度世界大会上,百度手机浏览器2.2全新版本作为重磅产品闪亮登场.新版的百度手 ...

  9. 用电脑浏览器模拟手机浏览器

    最近开发手机网站,需要测试不同的手机,比较麻烦,所以想到了用电脑浏览器来模拟手机浏览. 在网上找了些资料,在些方便有需要的朋友. 1.用谷歌Chrome浏览器: 在Windows的[开始]--> ...

最新文章

  1. HUD 5687(字典树)
  2. 梯度下降回归SGDRegressor、岭回归(Ridge)和套索(Lasso)回归、套索最小角回归、ElasticNet回归、正交匹配追踪回归
  3. 解决“The type initializer for‘Oracle.DataAccess.Client.OracleConnection‘ threw an exception ”异常
  4. mybatis mysql 配置文件详解_Mybatis的配置文件参数详解
  5. cocos2d-x游戏实例(9)-A星算法(5)
  6. libuuid 安装
  7. SAP UI5 local sandbox bootstrap的执行细节
  8. Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法
  9. 小心使用STL中map的[]操作符
  10. python3.8.0安装_Python3.8.0
  11. java websocket下载_java-websocket.jar免费版
  12. 请问我应该怎么做,才能让前端的基础打牢固?
  13. launchpad不用图标_Launchpad Manager,一款非常方便的启动台图标管理工具
  14. [转帖]三大运营商2G/3G/4G频率分配和网络制式
  15. jquery选择器通配符
  16. 小学音乐教学和计算机的融合,【多媒体技术论文】小学音乐多媒体教学融入策略问题(共5881字)...
  17. adb查看某个文件是否存在_android – 使用ADB检查目录是否存在,如果存在则推送文件...
  18. 勾股定理的html代码,有趣的数学——勾股定理
  19. 计算机第二学期末考试题,离散数学期末考试试题及答案
  20. Spark SQL的selectExpr用法

热门文章

  1. udev规则以及编写
  2. 中国余热发电市场运作动态与十四五可行性研究报告2021年版
  3. SpringCloud+Kubernetes 微服务容器化交付实战(9):JFrog Artifactory安装 配置
  4. ospf多区域虚连接的配置
  5. 入坑codewars
  6. Linux下嵌入式开发环境配置
  7. 采样开关的作用计算机控制,计算机控制系统复习要点
  8. 嵌入式开发:当用微控制器构建嵌入式GUI时,有哪些注意事项
  9. 重启计算机关闭账户,电脑开机重启提示您的账户已被停用怎么办
  10. JavaScript——JSON