已上架iOS App处于后台时获取App Clip扫描链接的技术咨询
解决App后台状态下获取App Clip链接的问题
你遇到的问题很典型——scene(_:willConnectTo:options:)只有在Scene首次创建并连接会话的时候才会触发,当App已经处于后台(Scene已经存在)时,扫描App Clip唤醒App,系统会调用另一个回调方法来传递userActivity,也就是scene(_:continue:)。
具体实现步骤
在你的SceneDelegate中添加这个方法,用来处理后台唤醒时的App Clip链接:
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { // 判断是否是Web浏览类型的userActivity(对应App Clip的链接) if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let webpageURL = userActivity.webpageURL { // 这里获取到后台扫描的App Clip链接,处理你的业务逻辑 appClipCodeURL = webpageURL print("后台获取到的App Clip链接:\(webpageURL)") } }
额外注意事项
- 确保你的App和App Clip已经正确配置了关联域名(Associated Domains),包括对应的App Clip链接的域名,否则系统无法正确传递userActivity。
- 如果你的App支持多Scene场景,要注意这个回调是绑定到具体唤醒的Scene上的,确保你在正确的Scene实例中处理链接。
- 测试时要保证App是处于后台活跃状态(不是被完全杀死),杀死状态下唤醒还是会走
willConnectTo方法。
内容的提问来源于stack exchange,提问作者XQF
相关产品推荐
相关产品推荐

