iOS 配置 Universal Links

2020-03-11  本文已影响0人  ZT_Story

前言

由于对接微信分享的时候发现微信的SDK 1.8.6需要支持Universal Links,于是查看官网以及各个博客资源
结合自身实际操作,记录在案

文档&资料

1、Support Universal Links - 支持通用链接
这份文档讲的比较详细,说到了很重要的一点,下面具体操作会提到

NOTE
Don’t append .json to the apple-app-site-association filename.

2、Supporting Associated Domains in Your App
这份文档仔细讲了2种(iOS12以后、iOS12以前)apple-app-site-association文件的写法,按需参考

3、苹果官方验证网址
配置好后可以在这个网页里面验证是否配置成功

操作

这里以xcode11为例

1、在工程中添加 Associated Domains

按序操作
Domains的配置以applinks:开头,后面写你放置apple-app-site-association文件的域名,到根目录即可

2、登录苹果开发者后台,在你的 APPID 中支持 Associated Domains,并更新 Profile 文件

3、配置 apple-app-site-association 文件
配置方式可以参照上面文档1文档2
创建一个名为apple-app-site-association的json文件

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "你的TeamID.你的Bundle ID",
            "paths": ["*"]
            }]
    }
}

apps后面的数组为空就好,主要内容配置在details里面
包含:appIDpaths

这里着重讲一下paths
path是设定你的app支持的路径列表,只有访问到域名下对应path的地址才会唤起APP。
其中可以使用通配符*或者/app/*
具体路径地址/app/home
还可以忽略某种规则NOT /help/website/*

划重点:填写完毕后保存,并且将文件.json后缀删掉,没错,删掉,会变成一个不能正常打开的文件

4、上传apple-app-site-association到你的服务器根目录或者.well-known目录
上传完后,先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,应该是直接下载apple-app-site-association文件

同时可以访问苹果官方验证,来校验你文件是否正确上传

如果校验成功会展示以上信息
Error no apps with domain entitlements 是因为还没有发布

5、以上做完之后可以安装APP到手机上
用Safari访问你的服务器域名+你的path

https://域名/path/

下拉查看是否有打开APP入口(如下图)。若无入口,可能是由于系统拉取Universal Links失败,请检查手机网络状态是否正常,或更新/重装APP。

image.png
系统只会在第一次安装/启动APP的时候去拉取Universal Links

6、到这里基本算配置成功了,如果还想美化一下目标页面的话,可以参考这两篇文档(纯英文)
这两个都是通过配置meta来调整头部标签的,有兴趣可以了解一下
配置WebPage的方式
The Open Graph protocol

需要注意的几点

原文出处:https://blog.csdn.net/gsl111000/article/details/102937698

1、Universal Link跨域
Universal Link有跨域问题,Universal Link必须要求跨域,如果不跨域,就不会跳转(iOS 9.2之后的改动)
假如当前网页的域名是A,当前网页发起跳转的域名是B,必须要求B和A是不同域名才会触发Universal Link,如果B和A是相同域名,只会继续在当前WebView里面进行跳转,哪怕你的Universal Link一切正常,根本不会打开App

2、Universal Link请求apple-app-site-association时机

记录一个小问题

集成微信1.8.6.2版本的微信分享SDK时,引入工程发现根据官方文档配置的依赖仍然缺少,编译报错
需要添加libc++.tbd
或者将工程支持c++编译,把其中一个文件后缀改为.mm即可

QQ分享的校验

QQ也发布了关于Universal Link的支持与适配
官方文档教你如何配置
看过之前的讲解之后,这里简单陈述一下
由于qq对于path有一定的要求,apple-app-site-association文件需要我们单独按照qq的配置

{
     "appID": "EB333MN775.com.hundsun.InternetSellTicket.appstore",
     "paths": [
         ...
         "/qq_conn/${你的qq应用APPId}/*"
     ]
}

然后去开放平台维护一下相关信息,校验通过之后就可以了

上一篇下一篇

猜你喜欢

热点阅读