iOS微信分享、通用链接Universal Link注意事项

iOS微信分享、通用链接Universal Link注意事项

    • 参考资料
    • apple-app-site-association 文件例子
    • 遇到的坑
        • 1、关于多个应用
        • 2、对于"paths" 字段
        • 3、请求机制
        • 4、本地apple-app-site-association文件
        • 5、关于微信分享注意事项
        • 6、关于验证Universal Links是否生效。

参考资料

比较全面的文章

apple-app-site-association 文件例子

apple-app-site-association 例子
{
    "applinks": {
        "apps": [],
        "details": [  
            {
                "appID": "9JA89QQLNQ.com.apple.wwdc",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "ABCD1234.com.apple.wwdc",
                "paths": [ "*" ]
            }
        ]
    }
}

遇到的坑

1、关于多个应用

对于很多app,都会区分很多应用包、企业包外网包、appStore包、企业预发布包,对应不同的 Bundle ID, 这个时候 details里面就可以填写多个appID对应BundleID就可以了
不需要多个apple-app-site-association文件 对应不同的 bundle ID,只需要一个apple-app-site-association文件

2、对于"paths" 字段

我当初理解域名下apple-app-site-association,要放在服务器目录下。其实这个目录不是文件目录,而是访问索引目录。
服务器压根就没有这个文件夹可以访问。paths参数是为了索引你想跳转哪个app的,也是索引你哪个BundleID的
举个例子
假设 服务器提供的访问地址是这个 https://domain.com
后面没有添加任何路径,会访问跳转 “ABCD1234.com.apple.wwdc” 这个应用

1、访问 https://domain.com/wwdc/news/
匹配到”/wwdc/news/“
会访问跳转 “9JA89QQLNQ.com.apple.wwdc” 这个应用

2、访问 https://domain.com/videos/wwdc/2015/apptiao/
匹配到”/videos/wwdc/2015/“
会访问跳转 “9JA89QQLNQ.com.apple.wwdc” 这个应用

3、访问 https://domain.com/wwdc/
“/wwdc/” 啥也没有匹配到,就会匹配任意 “*”
会访问跳转 “ABCD1234.com.apple.wwdc” 这个应用

3、请求机制

iOS会先请求https://domain.com/.well-known/apple-app-site-association,如果此文件请求不到,
再去请求https://domain.com/apple-app-site-association,
所以如果想要避免服务器接收过多GET请求,可以直接把apple-app-site-association放在./well-known目录下

4、本地apple-app-site-association文件

服务器上apple-app-site-association的更新不会让iOS本地的apple-app-site-association同步更新,即iOS只会在App第一次启动时请求一次,
以后除非App更新或重新安装,否则不会在每次打开时请求apple-app-site-association。
这个超级坑,当测试的时候,你服务器怎么更新都无效,这个时候就要卸载应用再重新安装才能触发同步apple-app-site-association配置

5、关于微信分享注意事项

Universal Link早就在iOS9就推出了,如果不是微信更新了1.8.6版本支持Universal Links方式跳转,在微信注册时候必须填写Universal Link链接,估计很多开发都不会使用Associated Domains
微信接入UniverSal Link注意点
    a)Universal Links必须支持https
    b)Universal Links配置的paths不能带query参数
    c)微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符/*
    d) 连续发起分享,确认不会发生多次二次跳转行为。当用户首次使用新版本SDK发起分享时,将会出现如下交互流程:从App拉起微信-出现“正在连接”页面-返回App-重新打开微信。以上是新的安全验证流程,每个用户在首次使用时会出现上述跳转。(如同一用户多次使用分享都出现跳转,请按照以下接入指引,检查Universal Links配置)

6、关于验证Universal Links是否生效。

a) 在Safari输入Universal Links,查看是否弹出跳转链接
b) 在iOS原生备忘录上, 输入Universal Links,点击是否可以跳转app
注意:手机上必须安装你需要跳转的应用并配置Associated Domains

你可能感兴趣的:(前端)