从零开始的操作流程在后面,这里把几个坑先挪到前面来 便于查看:

apple-app-site-association 只会在APP第一次启动的时候请求一次,因此文件的任何更新的验证都需要APP重新安装或App Store更新。

iOS 要使用 Universal Link,在客户端和网页端都需要进行配置

首先先看客户端的工作:

1.在APP 的工程中添加 Associated Domains

Xcode 11.4 及以上版本,直接在工程的的 Targets - Signing&Capabilities - +Capability - Associated Domains,添加Associated Domains

2.在 Associated Domains 进行链接的配置

点击添加按钮,添加要配置的网址链接,格式为   applinks:你的域名

比如你的域名是 www.hahaha.com, 那么你就配置成 applinks:www.hahaha.com 

 (注意前面不用加https:// 后面也不要加path 或者 /)

3.在 APPDelegate中 增加额外的处理方法

在 APPDelegate 中增加这个方法

在 APP被 universal link 唤醒后,就可以在这个函数内进行额外的处理(比如对path的处理来打开对应的界面等)

#pragma mark Universal Link
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *url = userActivity.webpageURL;
// TODO 可以读到URL里的host ,path等内容,根据需求进行处理
}
// TODO 根据需求进行处理
return YES;
}

然后看网页端的配置:

1.客户端的开发人员需要给网页端提供一个 apple-app-site-association 的 json文件

创建一个文本文件,不要加后缀名,里面的json内容如下:

{
"applinks": {
"apps": [],
"details": [
{
"appID": "你的TeamID.你的bundleID",
"paths": [ "/你的path/你的path/", "/你的另一个path/*"]
}
]
}
}

apps 字段 固定为一个空数组就可以了(为什么会有这种设置-_-)

我们关注一下 details 的写法:

首先,details 这个字段是一个数组,你可以配置多个元素,也就是说你的同一个域名其实可以打开不同的APP;

来看一个 detail 元素的格式:

appID,由两部分组成,teamID 和 budnleID。

首先是 teamID,去apple开发者网站-account,

https://developer.apple.com/account

点击 - 左侧 Membership ,就可以看到开发者账号的Team ID

TeamID 的格式 类似于 HILIE3CF44 (此处的teamID是编的),

然后我们继续找一下 bundleID,在你的工程中就可以找到

bundleID的格式,类似于 com.orancompany.peal ,(这个ID当然也是编的)

我们把这两个ID用点号拼在一起,就得到了这里需要的 appID :

  HILIE3CF44.com.orancompany.peal

️下面再来看一下paths

可以配置多个path;

结尾的 * 号表示这个路径之后不同的子路径也都可行;

只有域名+path的地址才能够唤起appID对应的APP;

paths中的内容,在唤起APP之后,APP中是可以接收到的,所以APP中通过对paths参数的判断,可以进一步打开不同的页面或者做其他的处理逻辑。

如果你这样写一个 detail

{
"appID": "HILIE3CF44.com.orancompany.peal",
"paths": [ "*"]
}

path里只有*,那么只要点击你的域名,就会唤起appID对应的APP。

2.让你们的网页开发人员把第一步的这个文件放到域名下的根目录 或者 .well-known (注意点号)目录下

必须支持HTTPS协议;

悄悄放一个apple的官方文档:https://developer.apple.com/documentation/xcode/allowing_apps_and_websites_to_link_to_your_content/supporting_universal_links_in_your_app

最新文章

  1. 部署 OpenStack VirtualBox
  2. jquery对标签属性操作
  3. .net架构设计读书笔记--第二章 设计体系结构
  4. EBS运行快速安装的程序时,提示DISPLAY变量设置不对
  5. svn提交代码的原则
  6. CentOS 6.5安装MySQL中文乱码问题解决
  7. Android开发了解——AAPT
  8. iOS之NSURLSessionDownloadTask下载
  9. ListBox控件例子
  10. Kafka发送消息失败原因
  11. Excel 数据导出
  12. bootstrap 轮播模板
  13. 升级node版本
  14. 第一周java学习总结
  15. 基于aws api gateway的asp.net core验证
  16. 安装Office2016遇到“无法流式传输Office”问题
  17. WinForm 进度条
  18. Python 面向对象1-面向对象介绍
  19. Atitit 最近资料文章列表r9 r8 月份 attilax总结
  20. c++中运算符重载

热门文章

  1. Spring Security Form表单认证代码实例
  2. Sundial(一)
  3. Kubernetes(k8s)控制器(三):ReplicationController
  4. MATLAB人工神经网络ANN代码
  5. supervisor管理java进程
  6. 为什么称不坑盒子是wps和word使用者的救世主呢?
  7. 2.2.vue用法在uniapp中的使用_
  8. socket.io实现简易聊天室功能
  9. NOIP2022 总结
  10. NOIP2021游记总结