iOS9之后,苹果推出了universal link方案,该方案较url scheme有明显的改善。url scheme很难做到唯一。

而 universal link却是你自己控制的。

1、有一个HTTPS 的web server服务器,这个域名就是用来做universal link的。

2、建立一个json文件,命名为apple-app-site-association 注意不要有后缀。文件里的内容为一段json:

{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.BUNDLEID",
"paths": [ "*"]
}
]
}
}

//TEAMID替换为你的付费Apple ID的team id. BUNDLEID替换为你的应用的包名

paths为路径,* 万能匹配符,具体的路径可以在数组中添加。

将apple-app-site-association这个文件上传到HTTPS web服务器根目录或者.well-known的子目录。

3、配置Xcode.打开Capabilities里的Associated Domains,在里面添加你的web server域名。

格式为:applinks:baidu.com //baidu.com替换为你的web server域名,注意域名的正确性,后面不要有/结束符,以applinks:为前缀

确保在开发者后台Apple Developer网站你的App Id包含Associated Domains功能。

4、在AppDelegate的代理方法中处理用户的点击事件

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{

// NSUserActivityTypeBrowsingWeb 由Universal Links唤醒的APP

if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {

NSURL *webpageURL = userActivity.webpageURL;

NSString *host = webpageURL.host;

if ([host isEqualToString:@"api.r2games.com.cn"]) {

//进行我们需要的处理

NSLog(@"TODO....");

} else {

NSLog(@"openurl");

[[UIApplication sharedApplication]openURL:webpageURL options:nil completionHandler:nil];

//            [[UIApplication sharedApplication]openURL:webpageURL];

}

}else{

NSLog(@"UNKNOWN");

}

return YES;

}

测试:苹果提供了一个链接来测试你的apple-app-site-association文件是否有效。

测试会告诉你哪些地方需要改进,测试没有通过也没有关系,可以直接在浏览器输入你配置的web server域名来测试。

https://search.developer.apple.com/appsearch-validation-tool/

universal link的一个好处了,这个网页你可以在里面做很多处理,包括用户的点击响应。如果手机上装了该app,则网页会提示在app中打开。如果没有安装app的话也可以引导玩家去苹果商店下载。

universal link使用的更多相关文章

  1. Universal Link 笔记

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

  2. iOS9 Universal Link实现

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

  3. iOS9上的Universal Link实现(教程)

    1.Universal Link 理解为苹果官方支持deeplink就行了 2.通过点击HTTP链接启动APP Web・iOS应用在支持Universal Link的前提下,当用户点击特点的链接时会自 ...

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

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

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

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

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

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

  7. 钉钉 & URL Scheme & Universal Link & Deep Link

    钉钉 & URL Scheme & Universal Link & Deep Link DD link https://www.cnblogs.com/xgqfrms/p/1 ...

  8. 微信、QQ添加Universal Link

    官方说明 1. Universal Links是什么 Universal Links(通用链接),是苹果在iOS9之后,提供的一种"可通过传统HTTP链接来跳转APP"的能力. 该 ...

  9. iOS9 新功能:Support Universal Links

    先看官方文档:https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalL ...

随机推荐

  1. CSP-S 94 (sb lsc gc赛)

    不要问我为什么题解倒着写,因为在填坑! 关于这场比赛就是我sb的再现 考完试旁边_LH叱的一声说道:“lsc真**垃圾”; lsc:........确实很垃圾! ------------------- ...

  2. 『题解』Codeforces1142A The Beatles

    更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently a Golden Circle of Beetlovers ...

  3. Python3.x安装教程及环境变量配置

    python3.x安装 1.直接到官网https://www.python.org/下载,安装就可以了. 2.安装比较简单,点exe文件一直下一步就可以了(注意:安装的时候有个选择是否添加环境变量,这 ...

  4. php charles 使用方法

    php charles 使用方法 打开charles 点击help菜单点击local ip address 可以获取本地ip 手机上选择代理这个ip 端口8888 然后手机访问网页 charles会弹 ...

  5. idea用hibernate创建一个表两个主键时遇到的问题

    1>> idea功能简单,最大化的实现傻瓜式操作,不需要像eclipse一样手敲代码,尤其是在创建主键多个或者主键映射时. 2>> (1).首先,idea创建复合主键映射时,需 ...

  6. (转)白话数字签名(2)——软件&设备

    然而它太慢了 非对称加密算法有一个重大缺点——加密速度慢,或者说得更拽一些,编码率比较低.例如在上一篇里我给Clark传的那个1GB的小电影,进行非对称加密足足用了66小时.那个借条小一些吧,也用了将 ...

  7. W5500

    W5500 芯片是一款韩国全硬件TCP/IP协议栈以太网接口芯片,   最近发现我们国内也有和W5500 芯片一样芯片 介绍给大家 如下图 :

  8. Tsx写一个通用的button组件

    一年又要到年底了,vue3.0都已经出来了,我们也不能一直还停留在过去的js中,是时候学习并且在项目中使用一下Ts了. 如果说jsx是基于js的话,那么tsx就是基于typescript的 废话也不多 ...

  9. 力扣(LeetCode)旋转字符串 个人题解

    给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能变成B ...

  10. python:类1——类和对象基础

    一.OO = Object Oriented 面向对象 OOP面向对象编程.OOA面向对象分析.OOD面向对象设计 二.属性+方法——>类(数据和函数) class Turtle(): #类名约 ...