如何解决从 Firebase In-App-Messaging 内的应用打开网址
我正在尝试覆盖 Firebase 的默认行为,以便按照本指南从应用内消息中打开链接:
https://firebase.google.com/docs/in-app-messaging/modify-message-behavior?platform=ios
我在 AppDelegate 中设置了 InAppMessaging 的委托:
func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
InAppMessaging.inAppMessaging().delegate = self
}
extension AppDelegate: InAppMessagingdisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingdisplayMessage,with action: InAppMessagingAction) {
let topMostViewController = UIApplication.shared.topMostViewController()
//openUrl has logic for opening the url inside the app in a full screen webview FullScreenWKWebView,this works great
openUrl(action.actionURL,parent: topMostViewController)
}
当点击 InAppMessaging 消息中的按钮时,委托方法 messageClicked 被完美加载,并且打开应用程序内部 url 的逻辑也有效。但 Firebase 用于打开链接的默认逻辑也会继续,因此 url 在应用内打开,同时 Firebase 跳出应用并在 Safari 中打开 url。
有什么方法可以取消 Firebase 的默认逻辑,使其仅在应用内打开吗?
解决方法
对于HTTP链接,可以在handoff中拦截URL打开:
// UIApplicationDelegate
func application(_ application: UIApplication,continue userActivity: NSUserActivity,restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
// handle userActivity.webpageURL
// true,if handled
return true
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。