Ios 从Firebase在应用程序内的应用程序消息中打开url

Ios 从Firebase在应用程序内的应用程序消息中打开url,ios,swift,firebase,firebase-in-app-messaging,Ios,Swift,Firebase,Firebase In App Messaging,我正试图按照以下指南覆盖Firebase从应用内消息中打开链接的默认行为: 我在AppDelegate中设置了InAppMessaging的委托: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { InAppMessaging.inAppMessag

我正试图按照以下指南覆盖Firebase从应用内消息中打开链接的默认行为:

我在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链接,您可以拦截切换中打开的URL:

//UIApplicationLegate
func应用程序(application:UIApplication,continue userActivity:NSUserActivity,
restorationHandler:@escaping([UIUserActivityRestoring]?)->Void->Bool{
//handle userActivity.webpageURL
//如果处理得当,则为true
返回真值
}

谢谢!但是InAppMessagingAction中的URL不是通用链接,它是一个外部URL,例如。是否触发了此方法?