https://www.jianshu.com/p/616dab3f3f81
步骤一 创建apple-app-site-association文件
在文本编辑器中创建一个内容为json格式的文件,苹果将会在app安装的的时候,从我们在项目中填入的域名请求这个文件。
例子:
{"applinks":{"apps":[],"details":[{"appID":"9JA89QQLNQ.com.apple.wwdc","paths":["/wwdc/news/","/videos/wwdc/2015/*"]}]}}
说明:
appId:组成方式是 teamId.yourapp’s bundle identifier。如上面的 9JA89QQLNQ就是teamId。登陆开发者中心,在Account -> Membership里面可以找到Team ID。
paths:1.使用指定整个网站
2.包括一个特定的URL,例如/ wwdc / news /,以指定一个特定的链接
3.将
附加到特定的网址(例如/ videos / wwdc / 2015 /),以指定网站的一部分
4.除了使用
匹配任何子字符串外,还可以使用?匹配任何单个字符。您可以将两个通配符合并在一个路径中,例如/ foo / * / bar / 201?/ mypage。
5.用于在path数组中指定网站路径的字符串区分大小写。
!注意
这个文件名必须为apple-app-site-association,切记没有后缀名。不要将.json附加到apple-app-site-association文件名。
如果您的应用程序在iOS 9或更高版本中运行,并且您使用HTTPS来提供apple-app-site-association文件,则可以创建一个使用application / json MIME类型的纯文本文件,而无需对其进行签名。如果您在iOS 8中支持交接和共享Web凭据,则仍然需要按照共享Web凭据参考中的说明对文件进行签名。
如果copy这个结构需要检查是否有中文标点符号。
写完之后在效验json的网站中验证json结构是否正确。
步骤二 将创建的apple-app-site-association文件上传到服务器
上传该文件到你的域名所对应的根目录或者.well-known目录下,这是为了苹果能获取到你上传的文件。
!注意
当你在浏览器中输入这个文件链接后,直接能看到对应的json数据,而不是下载。
下面是淘宝和微信的测试配置文件,打开自己配置的文件打开应该是相对应的样式。
https://b.mashort.cn/apple-app-site-associationhttps://help.wechat.com/apple-app-site-association
这个需要后台配合,将文件重定向来达到这个目的。具体需要后台来操作。
步骤三 appIDs配置和项目配置
1.开发者中心配置:找到对应的App ID,在Application Services列表里有Associated Domains一条,把它变为Enabled就可以了。
图片.png
2.工程配置中相应功能:targets->Signing&Capabilites->Capability->Associated Domains,在其中的Domains中填入你想支持的域名,也必须必须以applinks:为前缀。
图片.png
图片.png
!注意
1.Domains添加的域名没有https或者http,以www开头
步骤四 验证是否配置成功,成功后跳转指定页面
你将要配置的网址在Safari中打开,在出现的网页上方下滑,可以看到有在”XX”应用中打开:
图片.png
!注意
如果你在apple-app-site-association文件中的paths中配置的是指定路径,需要在域名后面拼接指定路径
当点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。
我们需要在工程里的实现AppDelegate里对应的方法:
-(BOOL)application:(UIApplication*)application continueUserActivity:(NSUserActivity*)userActivity restorationHandler:(void(^)(NSArray*_Nullable))restorationHandler{NSLog(@"userActivity : %@",userActivity.webpageURL.description);returnYES;}