iOS通用链接universalLink详细解答

1.简介

universal是iOS9后新增的特性,通过universalLink可以快速打开APP。相较于URL scheme的方案,有如下优点:

  • 独特。与自定义URL方案不同,其他应用程序不能声明通用链接,因为它们使用指向您网站的标准HTTP或HTTPS链接。
  • 安全。当用户安装您的应用程序时,iOS会检查您已上传到Web服务器的文件,以确保您的网站允许您的应用程序代表其打开URL。只有您可以创建和上传此文件,因此您的网站与应用程序的关联是安全的。
  • 灵活。即使未安装您的应用程序,通用链接也可以使用。如果未安装您的应用程序,则按用户期望,点击指向您网站的链接可在Safari中打开内容。
  • 简单。一个URL既适用于您的网站,也适用于您的应用程序。
  • 私人的。其他应用可以与您的应用通信,而无需知道您的应用是否已安装。

本次替换是因为微信跳转小程序,WXOpenSDK的api必须传universalLink校验,所以研究了下。

添加通用链接的步骤简单分为下面三步:

  • 创建apple-app-site-association文件,包含引用程序处理URL的JSON数据文件;
  • 将apple-app-site-association文件上传到HTTPS Web服务器。将文件放置在服务器根目录或.well-known子目录中;
  • 配置APP以处理通用链接;

注意

通用链接可让用户在点击链接到您的网站[WKWebView](https://developer.apple.com/documentation/webkit/wkwebview)以及[UIWebView](https://developer.apple.com/documentation/uikit/uiwebview)视图和Safari页面中的链接时打开您的应用程序,此外还可以链接到[openURL:](https://developer.apple.com/documentation/uikit/uiapplication/1622961-openurl),例如在Mail,Messages和其他应用程序中发生的链接。

当用户在Safari中浏览您的网站时,他们点击指向当前网页所在域中URL的通用链接,iOS会尊重该用户最有可能的意图并在Safari中打开该链接。如果用户点击指向其他域中URL的通用链接,iOS将在您的应用中打开该链接。

对于运行9.0之前的iOS版本的用户,点击指向您网站的通用链接可在Safari中打开该链接。

2.实现

2.1 创建apple-app-site-association文件

apple-app-site-association文件格式如下

{
"applinks": {
"apps": [],
"details": [{
"appID": "Team ID.explicit",
"paths": ["*"]
}]
}
}

注意apple-app-site-association文件不要加后缀

appID的格式为:teamID.explicit,位置如下图

image.png

appID密钥的值是团队ID或应用程序ID前缀,后跟捆绑软件ID。对应上面红框中的两个值

paths键的值是一个字符串数组,用于指定应用程序支持的网站部分以及您不想与该应用程序关联的网站部分。

要指定不应作为通用链接处理的区域,请在路径字符串的开头添加“ NOT”(包括之后的空格T)。

例如,下面所示的文件可以防止/videos/wwdc/2010/*通过更新paths数组,将网站区域视为通用链接,如下所示:

  1. "paths": [ "/wwdc/news/", "NOT /videos/wwdc/2010/*", "/videos/wwdc/201?/*"]

注意

1.用于在paths数组中指定网站路径的字符串区分大小写;

2.使用*指定整个网站;

3.包含特定的URL,例如/wwdc/news/,以指定特定的链接;

4.用添加到特定的URL,例如NOT /videos/wwdc/2010/,可以指定网站的一部分;

5.使用?匹配单个字符,/videos/wwdc/201?/*

因为系统paths按照指定的顺序评估数组中的每个路径,并在找到正负匹配时停止评估,所以您应在低优先级路径之前指定高优先级路径。

请注意,仅将URL的路径部分用于比较。其他组件(例如查询字符串或片段标识符)将被忽略。

2.2 上传到HTTPS Web服务器

2.2.1 创建apple-app-site-association文件

创建apple-app-site-association文件后,将其上传到HTTPS Web服务器的根目录或者.well-known子目录。

需要通过HTTPS在https://<domain>/apple-app-site-association或https://<domain>/.well-known/apple-app-site-association进行访问,而无需任何重定向;

其中<domain>路径为我们在APP内applinks中配置的路径,下面会说到。

2.2.2 注意:

1.给后台的apple-app-site-association文件不能有后缀;

2.注意检查格式,防止有其他字符或者乱码导致无法跳转;

2.2.3 取到后台路径后校验方法

1.把链接粘贴到备忘录,点击看能否直接跳转到APP,或者长按链接看有没有弹出跳转到APP的选项;

2.通过苹果API工具App Search API验证工具校验,结果以1为准;

3.你将要测试的网址在safari中打开,在出现的网页上方(the Smart App Banner),可以看到有在”XX”应用中打开

2.3 APP设置

2.3.1 开启Associated Domains权限

如下图

image.png

Xcode内设置如下图,Domains格式applinks:offlinetest.e***x.net,offlinetest.e***x.net对应2.2的<domain>

3.APP内使用

当点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。
我们需要在工程里的实现AppDelegate里对应的方法:

image.png

4.注意

通过2.2.3校验通过,但是在跳转微信时候还是提示universal link校验不通过。分析原因是微信开放平台配置的universalLink和当前链接不匹配,去更新就行

某系第三方,如sharaSDK提供了一个universalLink可直接使用,当然也可以选择自己生成

通过其他平台管理:通过openinstall平台

参考链接:苹果通用链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335