通用链接(Universal Links)早在iOS 9中就已经引入了,是一种能够方便的通过传统 HTTP 链接来启动 app的技术。实现通用链接需要以下几步:
一、为App ID勾选Associated Domains功能
登录苹果开发网站,找到你的应用包名App ID,勾选上Associated Domains功能,然后更新你的mobileprovision描述文件重新上传到控制台。
二、配置UZApp.entitlements文件
配置UZApp.entitlements文件的方式参照另一篇教程iOS修改entitlements文件,内容如下,需要把applinks:后面的内容换成你自己想要关联的域名,系统会从该域名请求一个 JSON 文件 apple-app-site-association,可以配置关联多个域名。配置完成后将UZApp.entitlements文件放置到网页包的res文件夹下,然后同步代码到云端。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.developer.associated-domains</key> <array> <string>applinks:xxx.com</string> </array> </dict> </plist> 复制代码
三、上传 apple-app-site-association 文件
这是一个JSON格式的文本文件,内容如下,其中App ID为你苹果开发者账号的团队标识和应用的包名组成,paths可以配置多个,可以直接配置"*",表示整个域名下网址都支持Universal Links,添加paths的时候注意区分大小写。
{ "applinks": { "apps": [], "details": [ { "appID": "6KYKP3473B.com.xxx.app", "paths": ["/wwdc/news/*"] } ] } } 复制代码
将文件放置在上面配置的域名根目录下,如果在浏览器能打开https://xxx.com/apple-app-site-association,那么说明配置成功。
注:文件保存时不要加.json后缀,必须通过https访问并且服务器CA证书需是受信任的。
四、云编译应用
安装到手机上面并打开,然后打开手机上面的备忘录,输入https://xxx.com/wwdc/news,点击该链接后能直接启动应用则说明整个流程正确。应用里面可以通过监听appintent事件来获取具体的链接地址做相应处理。
注:在web页面通过a标签跳转来拉起应用时,当前web页面地址的域名和通用链接的域名需要不同。