iOS Universal Links(通用链接)


公司的运维,发现最近大量的请求 /.well-known/apple-app-site-association这个文件,造成了大量的404,可是这是谁请求的呢?
其实是苹果从iOS9.3开始更改了通用链接的请求文件的路径了
从原来的 /apple-app-site-association 到现在的/.well-known/apple-app-site-association
官网文档UniversalLinks文档中
Upload the apple-app-site-association file to your HTTPS web server. You can place the file at the root of your server or in the .well-known subdirectory.
从此以后,都不需要再上传到网站的根目录下了,而是目录.well-known下

"kaola://www.kaola.com">打开APPa> <a href="tel://13788889999">打开拨号a> <a href="sms:1-408-555-1212">打开系统的短信appa>
  • 1
  • 2
  • 3
  • 4

但是这种方式有个不好的地方,就是需要提前判断系统中是否安装了能够响应此scheme的app,这个判断,网上很多,例如从浏览器或者Webview 中唤醒APP,如文章所描述的那样,很多网页中的判断是有问题的,经常会出现空白页,跳转不了等.更加悲催的是这种通过scheme方式来打开其它的app的方式,在微信中是被禁用了的.这意味着从微信的app中,是没法打开我们的app的.

Universal Links(通用链接):一条普通的http链接,例如https://yohunl.com/openApp, 当你支持通用链接的时候,系统中安装了你的app,那么用户点击链接,就直接进入到你的app中了,无论你是在微信中还是在其它哪里!!! 当你没有安装的时候,你可以去到你指定的页面(你可以直接展示你原来的H5页面,也可以跳转到下载页等).也就是说,用户无需知道你是否安装了app,如 果安装了,这条链接就可以进app(进入你app了,你就可以以本地原生页面去展示信息给用户了),没有安装,就直接进原来的h5页面,对用户来说,是一 个无缝的过程,非常顺畅!

官方的说明文档

https://yohunl.com/apple-app-site-association ,当你点击这个链接,应该是下载apple-app-site-association文件.
验证该文件是否合法,苹果为了方便开发者,提供了一个网页来验证我们编写的这个apple-app-site-association是否合法有效,验证网址,进入网站进行验证

  • 在xcode工程里进行一些配置
    首先就是打开工程配置中的Associated Domains打开

    在其中的Domains中填入你想支持的域名(这里不是随便填的,是可以支持你需要的Universal Links的域名), 必须以 applinks: 为前缀
    例如我的填入的是

  • applinks:yohunl.com
    applinks:www.yohunl.com
    • 1
    • 2

    苹果将会在合适的时候,从这里填入的域名请求文件apple-app-site-association

    注意:当你打开Associated Domains后,xcode会在你的工程中添加.entitlements文件
    并且如果你登陆你的开发者中心,可以看到
    ,这些都是有助于你排除问题的.

    到此,你的app就已经可以支持Universal Links(通用链接)了!!!
    那么怎么测试呢?

    http://stackoverflow.com/questions/32751225/ios9-universal-links-does-not-work上有讨论各种可能出现的问题 ,你可以去参考下

    iOS 9学习系列:打通 iOS 9 的通用链接(Universal Links)
  • 苹果官方Universal Links
  • iOS9 Universal Links
  • 国外人列举的当前支持Universal Links的app和其apple-app-site-association文件 51个应用的文件列表
  • 查看是否支持 Universal Links的苹果网站 网址
  • 相关