iOS 配置通用链接(Universal Link)服务端和开发者背景都配置好了,还是跳转 ...

打印 上一主题 下一主题

主题 1010|帖子 1010|积分 3034

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目录

一、什么是 Universal Link&#xff1
f;
1
.背景先容
2.特点
3.运行机制原理&流程图
二、配置教程
1
.第一步&#xff1
a;开启 Associated Domains 服务
1
.1
开通 Associated Domains
2.第二步&#xff1
a;服务器配置 apple-app-site-association(AASA) 文件
2.1
创建 apple-app-site-association 文件
2.2 将 apple-app-site-association 文件上传到服务器
2.3 校验 AASA 文件的有效性
2.3.1
 三方工具(推荐利用)
2.3.2 官网(不好用)
3.第三步&#xff1
a;配置 Associated Domains(域名)
3.1
在 Xcode 中配置
3.2 在 HBuilderX 中配置
4.第四步&#xff1
a;验证通用连接(Universal Link)是否配置正确
4.1
在 Safari 输入 Universal Links
4.2 在 iOS 原生备忘录上,输入 Universal Links

我按照大佬的操作都完成了,服务端给的所在也都验证通过,我前端配置也都ok,就是不跳转,最后发现是手机缓存标题,重启手机后,再重试就好了。
[img=1
094,294]https://img-blog.csdnimg.cn/751
a030fca7740cd897001
ba5cf8b751
.png[/img]

底部文章是来自一个大佬的博客总结的内容&#xff1
a;
瑾瑾的技术分享博客
一、什么是 Universal Link&#xff1
f;


1
.背景先容




  • Universal Link 是苹果在 WWDC 201
    5 上提出的 iOS 9 的新特性之一。此特性类似于深层链接,并可以或许方便地通过打开一个 Https 链接来直接启动您的客户端应用(手机有安装 App)。对比以往所利用的 URLSheme,这种新特性在实现 web-app 的无缝链接时,可以或许提供极佳的用户体验。利用前请阅读苹果官方文档 - Support Universal Links
  • 由于苹果 iOS 1
    3 体系版本安全升级,微信 SDK1
    .8.6 版本要求支持 Universal Links 方式跳转,以便举行合法性校验,提拔安全性。详情请参考微信官方文档 - iOS 接入指南
2.特点



  • Universal Link 可以无缝链接到 app 或网页,主要应用场景有内容分享广告投放。它有如下特点&#xff1
    a;

    • 如果安装了 app,会直接打开 app,并定位到内容页&#xff1
      b;
    • 如果没有安装 app,利用浏览器打开该链接&#xff1
      b;

3.运行机制原理&流程图



  • 当 App 初次安装后大概更新版本后的第一次启动(第二次启动就不会),向工程配置的 applinks: 的域名请求 apple-app-site-association 配置文件&#xff1
    b;
  • App 主动的将 apple-app-site-association 配置文件向 iOS 体系配置&#xff1
    b;
  • 当任何 WebView 发起 UniversalLink 的 url 的时候,体系遍历注册过的通用链接,如果掷中则直接打开 App 触发 Delegate 方法&#xff1
    b;如果没掷中,WebView 继续跳转加载 url。
  • 以上都是体系默默替你做的,我们要做的就是确保配置的正确性。

[img=1
066,673]https://img-blog.csdnimg.cn/img_convert/5fe1
b820d70d985bba7bd3759da2d3aa.png[/img]

二、配置教程

1
.第一步&#xff1
a;开启 Associated Domains 服务


1
.1
开通 Associated Domains




  • 登录苹果开发者中心,在“Certificates, Identifiers & Profiles(证书、标识符和描述文件)”页面选择“Identifiers(标识符)”

    [img=1
    200,1
    200]https://img-blog.csdnimg.cn/img_convert/74fdd88c700c6a0c959538bafacc6a91
    .png[/img]

  • 在“Identifiers(标识符)”选项下,添加或选择对应的 App ID

    [img=1
    200,906]https://img-blog.csdnimg.cn/img_convert/dbdbac1
    41
    28beaf4aab5b5b58d61
    6fe2.png[/img]

  • 勾选 Associated Domains 并生存,一定要确保开启 Associated Domains 服务
           紧张提示&#xff1
    a;开启 Associated Domains 服务后,需要重新生成 profile 文件
       
    [img=1
    200,1
    200]https://img-blog.csdnimg.cn/img_convert/bf02d0c78539d1
    1
    5f4ba3386d4f0abd2.png[/img]

2.第二步&#xff1
a;服务器配置 apple-app-site-association(AASA) 文件


   AASA(apple-app-site-association)文件是一个位于 根目录 或 /.well-known 文件夹下面的 json 文件 (例如: https://your_domain/apple-app-site-association 或 https://your_domain/.well-known/apple-app-site-association),里面描述了目的 app 的信息。AASA 文件和 entitlements 为网站和 app 提供了互相认证的机制。
  2.1
创建 apple-app-site-association 文件




  • 需要创建一个 apple-app-site-association 文件,必须命名为 apple-app-site-association,牢记没有后缀,有些人的电脑是隐蔽文件后缀的,务必把 .json 后缀去掉&#xff01
    ;
       
    1. 1
    复制代码
    1. touch apple-app-site-association
    复制代码

  • 文件内添加 json 格式数据,内容如下&#xff1
    a;
       
    1. 1
    2. 234567891
    3. 01
    4. 1
    5. 1
    6. 21
    7. 31
    8. 41
    9. 51
    10. 6
    复制代码
    1. {  "applinks": {    "apps": [], // apps&#xff1
    2. a;是限制只能在这几个app中利用,根本上不填写,所以是空数组    "details": [      // 可以配置一个,也可配置多个      {        "appID": "9JA89QQLNQ.com.apple.wwdc", // appID&#xff1
    3. a;是由TeamId + . + BundleId构成        "paths": ["*"] // paths&#xff1
    4. a;设定你的app支持的路径列表,只有这些指定路径的链接,才能被app所处理。"*"的写法代表了可识别域名下全部链接      },      {        "appID": "ABCD1
    5. 234.com.apple.wwdc",        "paths": ["/app/*", "/qq_conn/appid/*"] // "/app/*"是自己定义的路径&#xff1
    6. b;"/qq_conn/appid/*"需要根据QQ互联平台设置,appid是QQ互联背景对应应用的APPID      }    ]  }}
    复制代码

2.2 将 apple-app-site-association 文件上传到服务器



  • 你的服务器必须支持 HTTPS 协议,而且拥有该域名下上传到根目录的权限&#xff1
    b;
  • 将这个文件上传到你的服务器,可以将这个文件放到服务器的 根目录 下,也可以放到 .well-known 这个子目录下,这是为了苹果能获取到你上传的文件&#xff1
    b;
  • 该文件的 content-type 需要设置成 application/json,可以直接在 oss 上举行修改&#xff1
    b;

    [img=1
    200,1
    1
    76]https://img-blog.csdnimg.cn/img_convert/72030d3f1
    41
    0404d49f2bc5c27fcf82f.png[/img]

  • 上传完成后,对应的链接分别为https://xxx/apple-app-site-association或https://xxx/.well-known/apple-app-site-association(xxx 为服务端的域名),然后试着访问一下,看看是否可以或许获取到,当你在浏览器中输入这个文件链接后,出现下图就可以了&#xff1
    a;

    [img=1
    200,670]https://img-blog.csdnimg.cn/img_convert/40b872058dd1
    e5a89d4965b791
    3358fb.png[/img]

2.3 校验 AASA 文件的有效性



  • AASA 文件的格式和命名会直接影响到 iOS 体系可否正常拉取、识别里面的内容,如今有一些工具可以校验 AASA 文件有效性&#xff1
    a;
[size=1
]2.3.1
 三方工具(推荐利用)


[img=1
200,1
200]https://img-blog.csdnimg.cn/img_convert/dce56cf45580c3b4c458b00c7c351
25a.png[/img]

[size=1
]2.3.2 官网(不好用)

3.第三步&#xff1
a;配置 Associated Domains(域名)


3.1
在 Xcode 中配置


   Xcode 版本&#xff1
a;Version 1
4.2 (1
4C1
8)
  

  • 在 Xcode 中打开项目,选择目录中的 xxx.xcodeproj(xxx 通常为项目名称),在 xxx.xcodeproj -> Signing&Capabilites -> Capability -> Associated Domains 这个路径下举行配置&#xff1
    b;

    [img=1
    200,1
    200]https://img-blog.csdnimg.cn/img_convert/ebe1
    f1
    dc8be457e89df935ed1
    bcbf44a.png[/img]

  • 然后双击 Associated Domains,即可在 Xcode 中对 Associated Domains 举行配置,如果 Capability 中已经存在 Associated Domains,那么直接配置即可&#xff1
    b;

    [img=1
    200,1
    200]https://img-blog.csdnimg.cn/img_convert/cb1
    5aac3c88fb0b1
    4fcec6feca07845b.png[/img]

  • 在 Associated Domains 里面配置的 Universal Links,必须以 applinks: 为前缀,格式为&#xff1
    a;applinks:+配置的域名,例如&#xff1
    a;applinks:test.com

    [img=1
    200,1
    200]https://img-blog.csdnimg.cn/img_convert/e3893f4472482e8641
    36076655902ab0.png[/img]

3.2 在 HBuilderX 中配置

   HBuilderX 版本&#xff1
a;3.8.4
  

  • 打开 HBuilderX 并选择对应的项目,找到 manifest.json,在 App常用其它设置 中找到“iOS 设置”下的 关联域(Associated Domains)举行配置&#xff1
    b;
    [img=1
    1
    1
    7,348]https://img-blog.csdnimg.cn/img_convert/e71
    37b1
    71
    776dd91
    66b6839df1
    06946f.png[/img]

  • 大概打开项目的 manifest.json 文件,切换到“源码视图”项,在 uni-app 项目在 app-plus -> distribute -> ios -> capabilities -> entitlements 节点下添加 com.apple.developer.associated-domains 字段,字段值为字符串数组,每个字符串为要关联的域名&#xff1
    b;
       
    1. 1
    2. 234567
    复制代码
    1. "capabilities": {
    2.   "entitlements": {
    3.     "com.apple.developer.associated-domains": [
    4.       "applinks:xxx.xxx.com"
    5.     ] // xxx.xxx.com 是应用通用链接的域名(这里不要包含path),请修改为自己应用要使用的域名
    6.   }
    7. }
    复制代码

  • 生存后提交云端打包生效&#xff1
    b;
   留意&#xff1
a;在 Associated Domains 里面配置的 Universal Links 必须要以 applinks: 开头,背面写上域名,例如&#xff1
a;applinks:test.com
  4.第四步&#xff1
a;验证通用连接(Universal Link)是否配置正确


   留意&#xff1
a;测试时,手机上必须安装你需要跳转的应用并配置 Associated Domains
  4.1
在 Safari 输入 Universal Links




  • 在这个链接的页面顶部能看到“在 xxx APP 中打开”字样,点击“打开”按钮可以打开 app&#xff1
    b;

[img=750,1
200]https://img-blog.csdnimg.cn/img_convert/c9677a757e9fe8fc3c1
753ef8da6bf86.png[/img]

4.2 在 iOS 原生备忘录上,输入 Universal Links



  • 如果输入的 Universal Links 是能识别的链接,那么点击链接看看是否可以直接跳转到 app&#xff1
    b;
  • 大概长按该链接,看看弹出的菜单中是否有“在 xxx 中打开”,这都代表着成功了&#xff1
    b;

[img=750,1
200]https://img-blog.csdnimg.cn/img_convert/21
0fef3a7ae75dd1
7271
f9fc1
b3069d7.png[/img]

   留意&#xff1
a;服务器上 apple-app-site-association 的更新不会让 iOS 本地的 apple-app-site-association 同步更新,即 iOS 一般只会在 APP 下载完后初次启动才会下载这个文件,所以如果修改了 apple-app-site-association 文件,请删除 APP 后重新下载。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao1
23.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表