iOS universallinks唤醒app
从iOS9之后,苹果就推出了这个功能,用来唤醒外部app。这个功能在那些电商app上使用尤其广泛,当你打开对应的h5网页后,上面跳出一个是否跳转app的按钮。
现在iOS11已经基本覆盖,iOS12也马上就要发布了,这算是一个很成熟的服务了,所以对接一下,也十分必要。
在这个功能推出之前,iOS这边基本都用url scheme做app间的通信,这个功能在企鹅系应用中直接被屏蔽,在其他应用中使用的也不少。但是,这个会产生很多问题,应为url scheme不唯一,用户可以随便自定义这个url scheme。之前单位做应用的时候变碰到过这个问题,装了另外一个app之后,用urlscheme唤醒我的app的时候,唤醒了别的app,这个便是由于url scheme冲突造成的问题。unviersal links 由于域名的唯一性,便不会产生这个问题。
下面我们来说一下具体对接过程
1.在xcode中开启Associated Domians服务
路径:Target->Capbilities->Associated Domians
之前看有人说,需要先在开发者账号中开启这个服务,实际上你只要在工程中打开这个服务,然后build一下,开发者那边自动会开启这个服务。

在domains里面添加你需要的链接。
a.必须以applinks作为开头
b.该链接的服务器必须支持ssl
2.填写apple-app-site-association文件
这是一个json格式的文件,但是文件名不能有后缀

在这个文件里 可以配置多个appID,appID的格式为你该工程所在的team的teamID+你的工程ID-->>T1212JGF.com.xxx.xxx
具体的可以在开发者账号的Account -> Membership -> Team ID 查看
paths里面可以配置所有你需要响应的链接。
比如你在applinks里配置了www.baidu.com,你现在需要打开www.baidu.com就能唤醒app,那你可以直接写''/*".
你需要在某几个特定的链接下唤醒app,那就在paths里面填写你那特定的链接。paths里面可以填写多个链接
3. 把apple-app-site-association文件传到applinks的根目录下。
比如你applinks为www.baidu.com。那就将后台把这个文件传到这个目录下。当你访问www.baidu.com/apple-app-site-association这个链接的时候,能成功的下载这个文件,那就说明成功了。
4.工程中配置
在工程APPdelegate中添加对于该服务的响应代码,这里可以对该链接是否跳转进行控制。
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler{
if([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]){
NSURL *url = userActivity.webpageURL;
}
return YES;
}
5. 测试
在safari中打开对应的链接

当你打开链接,然后下拉,出现该多出的页面,那么恭喜你,你成功了。点击打开按钮,你就能跳转到你需要的页面了。
iOS universallinks唤醒app的更多相关文章
- 通过JS唤醒app(安卓+ios)
有需求说要通过页面按钮唤醒app,或者手机上没有这款app跳转到商店,然后刚开始也是查了资料的,结果发现一头雾水,不过最后还是捣鼓出来了,当然也参考了前人分享的经验,下面我就将方法整理一下: 首先明确 ...
- ios下微信浏览器如何唤醒app?app已上架应用宝
android下可以通过在应用宝微下载地址后面加参数&android_schema='应用schema'来实现,ios下如何实现? ios下微信浏览器如何唤醒app?app已上架应用宝 > ...
- 利用ios safari浏览器生成桌面快捷方式并唤醒app的示例代码
html 内容: //通过a链接唤醒app <a href="app约定好的scheme" id="qbt" style="display:n ...
- iOS后台唤醒实战:微信收款到账语音提醒技术总结
1.前言 微信为了解决小商户老板们在频繁交易中不方便核对.确认到账的功能痛点,产品MM提出了新版本需要支持收款到账语音提醒功能.本文借此总结了iOS平台上的APP后台唤醒和语音合成.播放等一系列技术开 ...
- 手机浏览器_安卓_苹果手机Webview 中唤醒APP
Url scheme是iOS,Android平台都支持,只需要原生APP开发时注册scheme, 那么用户点击到此类链接时,会自动跳到APP.比如 <!-- 打开考拉APP首页 --> & ...
- 从浏览器或者Webview 中唤醒APP
本文来自网易云社区 作者:刘新奇 移动互联时代,很多互联网服务都会同时具备网站以及移动客户端,很多人认为APP的能帮助建立更稳固的用户关系,于是经常会接到各种从浏览器.webview中唤醒APP的需求 ...
- 在UC浏览器打开链接唤醒app,假设没有安装该app,则跳转到appstore下载该应用
在UC浏览器打开链接唤醒app,假设没有安装该app,则跳转到appstore下载该应用 须要在project中设置例如以下: 1.打开project中的myapp-Info.plist文件 2.打开 ...
- H5网页唤醒app,判断app安装
在阅读本文之前你首先应该对js有基本对掌握,并且对Scheme,intent有一定的理解.更多的是代码 上午给朋友做了一个产品引导页,但是需要判断ios系统的TestFlight是否安装,进行了goo ...
- 微信浏览器内 h5 直接唤醒 app 之 微信开放标签 wx-open-launch-app
以前微信浏览器内想要直接唤醒 app 要么接微信的应用宝要么你是腾讯的干儿子. 而在微信在2020年5月分推出了“微信开放标签”功能 wx-open-launch-app 用于微信浏览器内直接唤醒 a ...
随机推荐
- typeof的探讨
console.log(typeof 'abc') // "string" console.log(typeof true )// "boolean" cons ...
- JavaScript练习笔记整理·4 - 6.26
基础练习(1): 我的解答为: function getMiddle(s) { if(s.length%2 == 0) { return s.charAt(s.length/2-1)+s.charAt ...
- ArcSDE10.2.2使用SQL操作ST_Geometry时报ORA-28579或ORA-20006错误
ArcSDE10.2.2使用SQL操作ST_Geometry时报ORA-28579或ORA-20006错误 1.测试环境说明 ArcSDE版本:10.2.2 Oracle版本:12.1.0.1和11. ...
- Java——实现对密码进行MD5加密
package common; /** *@author作者 E-Mail: *@version 创建时间:2015-9-24+下午01:22:44 *类说明 **/ import java.secu ...
- $.each遍历JSON字符串和 Uncaught TypeError: Cannot use 'in' operator to search for '156错误
现在页面和后端交互都流行使用json了 自己记录一下解析字符串的方法,要不老是忘记!!!! success: function (data) { //data是后台传过来的字符串 $.each(JS ...
- tomcat运行报错Failed to start component [StandardEngine[Catalina].StandardHost[localhost].
tomcat运行报错Failed to start component [StandardEngine[Catalina].StandardHost[localhost].多半情况是找不到jar包 解 ...
- centos7和centos6区别
CentOS 7 vs CentOS 6的不同 (1)桌面系统[CentOS6] GNOME 2.x[CentOS7] GNOME 3.x(GNOME Shell) (2)文件系统[CentOS6 ...
- Python初学者第四天 二进制运转换
4day 1.二进制运算 a.十进制转换二进制 342 转换成二进制 342 101010110 Python提供了一种简单的计算二进制的方法:bin() b.文字转换成二进制 ASCII码表 GB ...
- 体验SpringBoot
体验SpringBoot 1.介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开 ...
- ACM HDU 1755 -- A Number Puzzle
A Number Puzzle Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...