iOS设备点击OneSignal通知关联Google Dynamic Link跳转空白页问题
iOS端OneSignal搭配Google Dynamic Link点击推送跳转空白页解决方案
核心原因
该问题本质是OneSignal iOS SDK默认会用内置的WebView加载跳转链接,Google Dynamic Link的重定向逻辑无法在OneSignal的受限WebView中正常触发,所以才会出现空白页。而浏览器、WhatsApp等第三方应用用的是系统标准WebView或者原生universal link处理逻辑,所以可以正常跳转。
修复步骤
- 第一步:关闭OneSignal的默认跳转逻辑
初始化OneSignal时添加配置,禁用内置打开链接的能力,Swift代码参考:
OneSignal.setLaunchURLsInApp(false)
Objective-C代码参考:
[OneSignal setLaunchURLsInApp: false];
- 第二步:自定义通知点击回调处理链接
在通知点击的回调方法中手动取出链接,调用系统方法处理Google Dynamic Link,Swift代码参考:
OneSignal.setNotificationOpenedHandler { result in guard let urlStr = result.notification.additionalData?["launchUrl"] as? String, let url = URL(string: urlStr) else { return } UIApplication.shared.open(url) }
- 第三步:校验项目域名配置
打开Xcode项目的Signing & Capabilities页面,确认Associated Domains中已经添加你自己的Google Dynamic Link域名,格式为applinks:你的域名.page.link,不要仅添加OneSignal的关联域名。 - 第四步:排查全局拦截逻辑
如果项目内有自定义的WKWebView拦截、universal link全局拦截逻辑,确认没有拦截Google Dynamic Link的重定向链路,避免跳转被截断。
验证方式
修改完成后打包测试,触发推送后点击通知,会直接走系统的universal link跳转逻辑,不再弹出OneSignal的内置WebView,即可解决空白页问题。
内容的提问来源于stack exchange,提问作者Orly
相关产品推荐
相关产品推荐

