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实现(教程)的更多相关文章

  1. iOS9 Universal Link实现

    先来贴几个比较全面的帖子,看完就差不多了. 1   iOS 9 通用链接(Universal Links) 帖子注意项非常重要,仔细阅读. 自己补充几点: 1 服务器上配置的json文件apple-a ...

  2. iOS 唤起APP之Universal Link(通用链接)

    什么是Universal Link(通用链接) Universal Link(通用链接)是Apple在iOS9推出的一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和 ...

  3. universal link使用

    iOS9之后,苹果推出了universal link方案,该方案较url scheme有明显的改善.url scheme很难做到唯一. 而 universal link却是你自己控制的. 1.有一个H ...

  4. ios9怎么设置6位密码 ios9设置6位密码图文教程

    在原来的 iOS 系统中,只有四位数字密码与复杂密码之分,而在 iOS9 系统中却多出了一个六位数字密码,那ios9怎么设置6位密码,今天小编就为大家带来ios9设置6位密码图文教程   在原来的 i ...

  5. github上最全的资源教程-前端涉及的所有知识体系【转】

    github上最全的资源教程-前端涉及的所有知识体系[转自:蓝猫的博客] 综合类 综合类 地址 前端知识体系 http://www.cnblogs.com/sb19871023/p/3894452.h ...

  6. iOS 禁用`URL Scheme`和`Universal Link`(通用链接)

    为什么要禁用URL Scheme和Universal Link(通用链接) 通常我们APP中都会嵌套一些web页面,有时我们的web页面会被DNS劫持从而跳转到其他APP中:或者是某些APP的Univ ...

  7. 简单配置iOS的通用链接,迅速解决“universal link 校验不通过”问题!

    对于需要使用微信支付等功能的APP来说,对接微信提供的openSDK是不可缺少的一环.随着苹果iOS 13系统版本的安全升级,为此openSDK在1.8.6版本进行了适配.1.8.6之后的openSD ...

  8. Windows OS上安装运行Apache Kafka教程

    Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...

  9. Universal Link 笔记

    如何实现Universal Link? 简单地说三步,1.把一个配置文件放在指定服务器根目录 2.在Xcode中设置AssociateDomain 3.安装app时,会根据Xcode中设置的Assoc ...

随机推荐

  1. ecshop在nginx下实现负载均衡

    ecshop在负载方面的功能是十分弱小的.当你的IP每个小时到达了一万IP.如果在带宽和服务器硬件有限的情况下.你的服务器很快就会崩溃的.网站直接挂掉.为了增强ecshop在负载均衡方面的能力.我们可 ...

  2. python—cookielib模块对cookies的操作

    最近用python写爬虫爬了点数据,确实是很好用的东西,今天对python如何操作cookie进行一下总结. python内置有cookielib模块操作cookie,配合urllib模块就可以了很轻 ...

  3. 贴板子系列_1-exgcd

    exgcd ll exgcd(ll a,ll b,ll &x,ll &y) { ) { x=;y=;return a; } ll r=exgcd(b,a%b,x,y); ll t=x; ...

  4. OC - 正则表达式 - RegexKitLite

    正则表达式使用步骤: 1. 创建正则表达式对象, 设置约束条件; NSString *pattern = @"\\d{1,3}"; NSRegularExpression *reg ...

  5. 排名第一、第二的OCR软件

    排名第一.第二的OCR软件 第一:ABBYY FineReader      OCR世界排名第一,在俄罗斯获国际科技大奖奖超过卡巴斯基! 不仅仅只是文字识别,还能表格识别,版面还原,字体识别,文档结构 ...

  6. UML 类图的关系

    1.  关联关系 1.1 单向关联 . public class ClassA { private ClassB bVar; } public class ClassB { //... } 1.2  ...

  7. php字符串连接

    <?php$s = "a";$s .= "b";echo $s; ?> 输出 ab 字符串连接: .=

  8. 【20161030la 】总结

    就写个题解 1. 生成树(Tree) 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些 ...

  9. 【HDU 4276】The Ghost Blows Light(树形DP,依赖背包)

    The Ghost Blows Light Problem Description My name is Hu Bayi, robing an ancient tomb in Tibet. The t ...

  10. JSON数据与JavaScript对象转换

    使用JSON时,最基本的工作就是JSON数据与JavaScript对象之间的互相转换.如浏览器 从服务器端获得JSON数据,然后转换为JavaScript对象在网页输出. SON: JavaScrip ...