iOS 通用链接(Universal Link)唤起app的实现方法

准备工作

开发者账号设置支持

进入开发者中心 选择 Certificates, IDs & Profiles

选择对应的AppId, 编辑其属性,让它能支持Associated Domains,编辑完成之后,保存

设置Associated Domains

将该项目对应的证书重新生成一遍,并下载,配置到工程中即可。

配置证书

XCode支持

在项目中的Target-Capabilities中配置域名。

设置XCode

注意事项

  1. Associated Domains 配置必须以applinks: 开头
  2. 将Associated Domains 的开关打开

文件支持

配置apple-app-site-association文件

注意事项

  1. 必须生成名字为 apple-app-site-association 的文件,没有后缀没有后缀没有后缀
  2. apple-app-site-association文件的格式为图片内容中的格式,只可以修改details 数组中的内容,其他不能修改
  3. appID: Prefix.ID
  4. 设置路径: 假设我们的链接为 y01c.cn,我们在这里设置为 /g/*, 则只有以 y01c.cn/g/为前缀的Universal Link才可以打开我们的app。 若我们设置为 / ,则以 y01c.cn/ 为前缀的Universal Link都可以打开我们的app

服务器支持,建立app与链接的关系

步骤

  1. 将 apple-app-site-association 文件上传到服务器中该域名的根目录下,言下之意就是我们可以用GET请求可以获取到 https://www.example.com/apple-app-association
  2. 再次强调 必须是 HTTPS协议
  3. 关联原理:当我们的App在设备上第一次运行时,如果支持Associated Domains功能,那么iOS会自动去GET定义的Domain下的 apple-app-site-association 文件。需要留意iOS会先请求https://domain.com/.well-known/apple-app-site-association如果此文件请求不到,再去请求https://domain.com/apple-app-site-association所以如果想要避免服务器接收过多GET请求,可以直接把 apple-app-site-association 放在 .well-known 目录下

注意事项

  1. 注意:首先你的服务器必须得支持SSL
  2. 服务器上 apple-app-site-association 的更新不会让iOS本地的 apple-app-site-association 同步更新,即iOS只会在App第一次启动时请求一次,以后除非App更新或重新安装否则不会在每次打开时请求 apple-app-site-association

开发

待我们服务器部署好了,用curl测试一下 apple-app-site-association 能够正确GET到了,那么我们就需要在工程中响应跳转事件了。

我们在AppDelegate中实现如下代理方法:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {}


测试

现在一切都已经完成了,现在我们可以在 短信/备忘录 中点击一个URL直接跳转到我们的App。至于如何检验URL是否能够跳转,一个快捷方便的方法就是在系统原生App中(如短信、邮件等)长按URL,如果弹出的选项中有在“your app”中打开,那么证明该URL是支持跳转的.

注意

非系统原生App不一定能支持直接点击URL跳转,例如在微信中点击URL会首先在微信内的WebView打开,如果要跳转只能再通过Safari打开。

### 回答1: 非常感谢您的问题!我是 ChatGPT,我会尽力回答您的问题。 关于您提到的在微信内如何通过 Universal Link 启动 App 的问题,这需要您的 App 支持 Universal Link,并且需要正确配置您的服务器和 App。具体而言,您需要在您的 App 中添加 Universal Link 支持,并在您的服务器上为该链接提供正确的 JSON 文件,以便微信可以正确地解析并启动您的 App。 如果您遇到了困难,建议您可以查阅相关的文档和教程,或者咨询开发人员寻求帮助。同时,如果您有其他问题需要帮助,欢迎随时向我提问,我会尽力为您解答。 ### 回答2: 在微信内如何通过Universal Link唤起appUniversal Link通用链接)是一种在iOS上使用的一种技术,可以通过点击链接直接打开指定的app而不是网页。下面是在微信内使用Universal Link唤起app的步骤: 1. 配置AppUniversal Link支持:首先,开发者需要在Xcode中对App进行配置,以支持Universal Link。这包括在App的Associated Domains中添加对应的域名,以及在AppDelegate中添加处理Universal Link的相关代码。 2. 注册并配置Domain Verification文件:开发者需要在对应的服务器上注册一个domain association file,该文件包含了App的Bundle ID以及对应的域名。并将该文件配置到服务器上。 3. 生成并验证证书:开发者需要生成并验证SSL证书,确保服务器上使用的所有域名都被正确认证。 4. 在微信公众平台上配置:开发者需要登录微信公众平台,在“移动应用”中找到对应App,并选择“应用链接”。然后,填写AppUniversal Link和对应的域名。并确认手机已安装了对应的App。 5. 发起唤起请求:在微信内,开发者可以通过链接的方式发送给用户。当用户点击此链接时,微信会先检查用户手机中是否已安装有对应的App。如已安装,会直接唤起App并打开指定的页面;如未安装,则会在微信内跳转到链接中指定的网页。 需要注意的是,微信只支持指定的部分域名,并且开发者需要保证App在用户手机中安装并且能够正常运行。 ### 回答3: 在微信内通过Universal Link唤起app需要以下几个步骤: 1. 首先,需要在微信开放平台注册并创建一个应用,获取到AppID。 2. 在自己的app内配置Universal Link。打开Xcode,在工程的Signing & Capabilities选项中,添加Associated Domains,然后添加一个格式为"applinks:yourdomain.com"的条目,其中yourdomain.com是你自己的域名。 3. 在你的服务器上配置Universal Link。在你的域名下创建一个名为apple-app-site-association的文件。这个文件要满足Apple的规定格式,并描述了应用和对应域名之间的关联关系。 4. 在微信开放平台的应用设置中,将"链接发送"选项设置为"开启",并在"完整链接"中填入你的Universal Link的网址。 5. 当用户在微信中点击发送给他人的链接时,微信会检测链接是否可以匹配到对应的Universal Link,如果可以,就会尝试唤起对应的app。 需要注意的是,为了保证唤起app的有效性,必须确保Universal Link的配置无误,并且已经发布到线上服务器上。此外,还需要确保用户的设备上已经安装了对应的app,否则无法唤起
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值