iOS9上的Universal Link实现
来源:互联网 发布:mac ps复制图层快捷键 编辑:程序博客网 时间:2024/06/05 16:16
1.Universal Link
理解为苹果官方支持deeplink就行了
2.通过点击HTTP链接启动APP
Web・iOS应用在支持Universal Link的前提下,当用户点击特点的链接时会自己起动应用
・App已经安装的前提下:直接启动App然后现实链接内容
・App没有安装的前提下:Web上继续显示链接内容
3.Universal Link的实现方法
首先需要准备一下内容
Web服务器
・独立的domain
・SSL证书
・被签名的JSON文件
iOS应用
・iOS9以上
・Xcode 7・iOS 9 SDK
・Capabilities
・AppDelegate的代理设置
3.1 Capabilities的设置
在Capabilities的设置中,设置`Associated Domains’的Domains内容
例:https://www.facebook.com/ -> applinks:facebook.com
注意:对于subdomain,www的有无要仔细考虑一下
3.2 apple-app-site-association文件的配置
apple-app-site-association文件一定要放在服务器的根目录下!!!!!!
首先要准备一下apple-app-site-association文件
{
"applinks"
: {
"apps"
: [],
"details"
: {
"TBEJCS6FFP.com.domain.App"
: {
"paths"
:[
"*"
]
}
}
}
}
paths中的内容为对应App启动的链接路径
全路径的时候使用“*”。
特定位置的时候需要指定具体内容,
[
"/wwdc/news/"
, /videos/wwdc/
2015
/*]
TBEJCS6FFP.com.domain.App这部分使用的是你的TeamID和Bundle Identifier
3.3 对apple-app-site-association文件的签名
我使用的是以下的方法对apple-app-site-association进行签名。
cat apple-app-site-association-unsigned.js | openssl smime -sign -inkey g01-server.key -signer g01-server.crt -certfile g01-dvcacert.cer -noattr -nodetach -outform DER > apple-app-site-association
3.4 App对应的开发
在AppDelegate.m文件中添加以下代码
- (
BOOL
)application:(UIApplication *)application continueUserActivity:(
NSUserActivity
*)userActivity restorationHandler:(
void
(^)(
NSArray
* _Nullable))restorationHandler
{
NSLog
(@
"continueUserActiity enter"
);
NSLog
(@
"\tAction Type : %@"
, userActivity.activityType);
NSLog
(@
"\tURL : %@"
, userActivity.webpageURL);
NSLog
(@
"\tuserinfo :%@"
,userActivity.userInfo);
NSLog
(@
"continueUserActiity exit"
);
restorationHandler(
nil
);
NSHTTPCookieStorage
*sharedHTTPCookieStorage = [
NSHTTPCookieStorage
sharedHTTPCookieStorage];
NSArray
*cookies = [sharedHTTPCookieStorage cookiesForURL:userActivity.webpageURL];
NSLog
(@
"COOKIE{name: %@"
, cookies);
return
true
;
}
如代码所示,我们可以获取到跳转链接的一些基本信息
URL内容,ActionType等都是可以获取并且在代码中进行修改的。
4.结果
通过以上的配置后,一个基础的Universal Link应用就开发结束了
点击对应的链接我们可以看到自己的App被成功启动
5.一些事实
相同的服务器不同的目录结构可能导致Universal Link不启动
应用和json文件同时更新时,json更新的部分可能会没有效果
- iOS9上的Universal Link实现
- iOS9 Universal Links 的坑!!!
- 用Universal Link来实现ios的跳转
- universal link
- ios通用链接(Universal Link)的处理
- iOS Universal Link 开发
- iOS Universal Link
- Universal Link 通用链接
- iOS9.2 univesal link 踩过的坑
- Universal Link|iOS开发者不得不知的技术
- MobLink | URL Scheme和Universal Link的区别
- 在Windows上实现link
- Link - Windows Universal App - AppBar
- LINK - Windows Universal - 消息推送
- Universal Link(iOS)踩坑
- Universal Link 前端部署采坑记
- iOS9 Universal Links (通用链接)
- iOS9上实现3D Touch功能之快速启动
- 用户注册功能用Servlet实现
- Cassandra的安装及配置
- 微信小程序34
- 邮件服务器dovecot
- 微信小程序35
- iOS9上的Universal Link实现
- mysql 10038错误
- 微信小程序36
- 拉格朗日乘子法
- js es6 export import
- 微信小程序37
- Go 基于Token解析JSON
- 10岁男孩玩游戏花掉1万2,和妈妈打欠条通过家务和学习成绩“还债”
- USACO Section1.2 Transformations