iOS9上的Universal Link实现(教程)
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更新的部分可能会没有效果
如果需要使用我的服务器和app进行测试的同时可以私信我。
iOS9上的Universal Link实现(教程)的更多相关文章
- iOS9 Universal Link实现
先来贴几个比较全面的帖子,看完就差不多了. 1 iOS 9 通用链接(Universal Links) 帖子注意项非常重要,仔细阅读. 自己补充几点: 1 服务器上配置的json文件apple-a ...
- iOS 唤起APP之Universal Link(通用链接)
什么是Universal Link(通用链接) Universal Link(通用链接)是Apple在iOS9推出的一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和 ...
- universal link使用
iOS9之后,苹果推出了universal link方案,该方案较url scheme有明显的改善.url scheme很难做到唯一. 而 universal link却是你自己控制的. 1.有一个H ...
- ios9怎么设置6位密码 ios9设置6位密码图文教程
在原来的 iOS 系统中,只有四位数字密码与复杂密码之分,而在 iOS9 系统中却多出了一个六位数字密码,那ios9怎么设置6位密码,今天小编就为大家带来ios9设置6位密码图文教程 在原来的 i ...
- github上最全的资源教程-前端涉及的所有知识体系【转】
github上最全的资源教程-前端涉及的所有知识体系[转自:蓝猫的博客] 综合类 综合类 地址 前端知识体系 http://www.cnblogs.com/sb19871023/p/3894452.h ...
- iOS 禁用`URL Scheme`和`Universal Link`(通用链接)
为什么要禁用URL Scheme和Universal Link(通用链接) 通常我们APP中都会嵌套一些web页面,有时我们的web页面会被DNS劫持从而跳转到其他APP中:或者是某些APP的Univ ...
- 简单配置iOS的通用链接,迅速解决“universal link 校验不通过”问题!
对于需要使用微信支付等功能的APP来说,对接微信提供的openSDK是不可缺少的一环.随着苹果iOS 13系统版本的安全升级,为此openSDK在1.8.6版本进行了适配.1.8.6之后的openSD ...
- Windows OS上安装运行Apache Kafka教程
Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...
- Universal Link 笔记
如何实现Universal Link? 简单地说三步,1.把一个配置文件放在指定服务器根目录 2.在Xcode中设置AssociateDomain 3.安装app时,会根据Xcode中设置的Assoc ...
随机推荐
- 微信公众号-加解密数据demo坑
demo里面的MsgSignature作为url参数一部分了,demo也不更新下 坑爹的微信! 解密信息部分 include_once "wxBizMsgCrypt.php"; $ ...
- python 数据字典应用
一.什么是字典? 字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器 ...
- 详解 CSS 属性 - 伪类和伪元素的区别[转]
首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果 ...
- c# .net使用SqlDataReader注意的几点
转自:http://blog.knowsky.com/258608.htm 1.当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用 ...
- 实现js的类似alert效果的函数
这个简单的类似alert的函数,效果还行,至于css样式,那没的说了,笔者确实尽力了,如果读者觉得太烂,你可以随便改函数的样式的,反正,笔者觉得还可以,呵呵. <!DOCTYPE html PU ...
- leetcode 组合题
1.Subsets 代码1: class Solution { public: vector<vector<int> > subsets(vector<int> & ...
- scanf格式控制符
格式控制 . %d %o %x %c %s %f %e 无%u格式.%g格式 . scanf("%3d%3d", &a, &b); 输入: //a=123,b=45 ...
- 百度预测 及 maven pom搜索地址
http://trends.baidu.com/ http://mvnrepository.com/artifact/net.sourceforge.htmlcleaner/htmlcleaner/2 ...
- ORACLE 常用系统函数
1. 字符类 1.1 ASCII(c ) 函数 和CHR( i ) ASCII 返回一个字符的ASCii码,其中c表示一个字符;CHR 返回ascii码值i 所对应的字符 . 如: S ...
- [BZOJ 3530] [Sdoi2014] 数数 【AC自动机+DP】
题目链接:BZOJ - 3530 题目分析 明显是 AC自动机+DP,外加数位统计. WZY 神犇出的良心省选题,然而去年我太弱..比现在还要弱得多.. 其实现在做这道题,我自己也没想出完整解法.. ...