h5跳转到app的实现
随着业务的增加,可能存在这么一种需求,就是需要从h5中直接跳转到app。如果没有安装app的话,则提示到应用市场或者app store下载安装。不过问题就在这个地方,单纯的用h5是没有方法判断是否安装过app的,不过这些是难不倒程序员的,他们通常会用这种代码来解决
window.location.href = 'app的协议'; setTimeout(function() {
window.location.href = 'app的下载地址'
},500)
其实代码很简单,先去跳转公司无线组app的自定义的schema协议;如果没有安装的app的话,第一行的代码是不生效的,然后500ms跳转到app的下载地址,通常是是借助tx的亲儿子应用宝或者app store 的下载连接。不过这种实现方式也是有问题的,因为你在微信中或者qq中即使安装app的话,也不会跳转到app中的,因为你司的app的schema协议是禁止跳转的,除非加入了白名单。如果没加入微信的白名单的话,解决方法通常在h5页面某个地方加上一个简单的tips.提示用浏览器打开这个页面。如果安装了app,在浏览器可以正确的打开app的。当然,这是安装了app的情况,当没有安装app的话,上诉代码在微信是没有任何问题的,反正又没法跳schema的,跳转到app的下载地址肯定是万无一失的。但是我们在上一步提示用户在浏览器打开页面,这时候问题又来了。这时候会出现一个讨厌的框框,这种框框是没有啥好办法禁止的。产生的原因嘛。就是那个schema协议搞得鬼。这时候我们的解决方式,就是在上一步的tip中提示‘如果安装了app的话,用浏览器打开’,哈哈,这么简单的嘛,其实很多公司都是这么做的,简单直接。目前我们的公司就是这种方式。或者直接给两个按钮算了。一个打开,一个下载。有些时候,化繁为简未尝不是一种合适的方式。
那么有其他的方式来解决嘛。按理说是有的。上文说到微信禁止了app的schema协议。其实有一种协议,微信是没有禁止的,那就是universal links。关于怎么配置的话其实不是我们前端工程工作范畴的,甚至有写无线端开发也是一脸懵逼,有兴趣可直接百度。另外的一种方式是利用iframe,不过这种方式在ios9以上是不能成功的。所以这种方式也可以直接pass。
h5跳转到app的实现的更多相关文章
- H5页面中判断是安卓手机还是ios手机的方法;APP页面中嵌套的H5跳转到APP其他页面的方法。
(一).在H5页面中,可以直接利用如下的方法来进行判断是安卓还是ios. var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linu ...
- 判断终端类型、微信的文章防盗链、h5页面跳转打开新的app、跳转到app市场
判断终端的类型.安卓.ios.微信.qq function GetMobelType() { var browser = { ...
- H5如何实现唤起APP
前言 写过hybrid的同学,想必都会遇到这样的需求,如果用户安装了自己的APP,就打开APP或跳转到APP内某个页面,如果没安装则引导用户到对应页面或应用商店下载.这里就涉及到了H5与Native之 ...
- android端,webview内url跳转到app本地
这是和一个前端同事沟通. app内嵌入他的web页,要通过web页内的url跳转到app的详细内容. 他的android同事,没有思路. 其实嵌入web页,用的webview控件,只要能找到webvi ...
- iOS 跳转到App Store下载或评论
//跳转到app在AppStore页面 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString string ...
- iOS 跳转到 App Store 下载评分页面
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- boot跳转到app后,中断不起作用的原因
boot跳转到app后 osKernelStart()之前,中断有问题,不起作用 原因是因为boot跳转之前__disable_irq(); 跳转到APP后,并不是一切从头开始,__disable_i ...
- iOS应用跳转到App Store评分
iOS应用跳转到App Store评分 1.跳转到应用评价页 NSString *urlStr = [NSString stringWithFormat:@"itms-apps://itun ...
- Android通过DeepLink方式跳转其他App传递参数
网上对于安卓DeepLink方式跳转传递参数的例子较少,说的也不客观,实践之后发现还是有一些坑.其实为什么要用DeepLink方式跳转,有些是因为引流的原因,他们希望通过网页就能直接跳转到App的界面 ...
随机推荐
- winform 写入和读取TXT文件
C# winform写入和读取TXT文件 string str; str=this.textBox1.Text; StreamWriter sw = new StreamWriter(Applicat ...
- 网站的Information Architecture--构建一个最优用户体验的site structure
http://conversionxl.com/website-information-architecture-optimal-user-experience/ 在网站上应该有什么类型的conten ...
- bootstrap colorscheme以及theme自动生成
http://paintstrap.com/ 是一个根据adobe kuler color scheme自动生成theme 的工具,比较直观好用,对于调整前端theme有一定参考意义
- javaEE版本的eclipse中导入工程,发现server里面找不到工程,根本发布不了也不能运行
原文:http://www.cnblogs.com/sxmcACM/p/3674545.html 1.具体解决方法 首先确保,你导入的工程所用的JDK版本和你的机器上安装的版本是同一版本, 如果不同做 ...
- 【Leetcode】【Medium】Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- July 23rd 2017 Week 30th Sunday
Setting goals is the first step in turning the invisible into the visible. 设定目标是将实现梦想的第一步. If you wa ...
- hosts配置
转自:http://www.cnblogs.com/ylemzhang/archive/2011/10/19/2217187.htm 注意: hosts文件不支持端口映射 如果指定端口参考: //直 ...
- 关于函数指针与c++多态
原文 https://www.cnblogs.com/zhchngzng/p/4013031.html 虚函数是实现多态的重要元素,请看: class A { public: void a0(){c ...
- jasmine —— Spies(转)
Jasmine有称为间谍(spies)的测试双重功能.一个spy可以监测任何函数的调用和参数的调用痕迹.Spy只能存在于定义它的describe()和it()代码块内,而在每一个spec(即it)结束 ...
- 把list(对象)集合中的(某个属性),放到数组中。
List<SpecialguardInfo> list=specialguardOrderService.findfreeSg(date1,date2);//得到list对象集合 Stri ...