未启动应用程序时,Firebase动态链接不起作用

问题描述 投票:0回答:1

当应用在后台运行时运行良好。但是,当该应用程序已安装但当时没有启动时,它只是打开该应用程序,而不重定向到相应的屏幕。请帮助我摆脱这种情况,iOS的部署目标是iOS9.3。我正在iPhone7 iOS 13.4上运行该应用程序。这是我的代码:

功能应用程序(_ app:UIApplication,打开url:URL,选项:[UIApplication.OpenURLOptionsKey:任何])->布尔{返回应用程序(应用程序,打开:URL,sourceApplication:选项[UIApplication.OpenURLOptionsKey.sourceApplication]如?串,注释:“”)}

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {

    if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
        if dynamicLink.matchType == .unique {
            handleDynamicLink(dynamicLink)
        } 
        return true
    } 
    return false
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler {

NSURL *incomingURL = userActivity.webpageURL;

if (incomingURL) {
    NSLog(@"Incoming URL is %@:", incomingURL);
    BOOL linkHandled = [[FIRDynamicLinks dynamicLinks]handleUniversalLink:incomingURL completion:^(FIRDynamicLink * _Nullable dynamicLink, NSError * _Nullable error) {

        if (error != nil) {
            NSLog(@"Found an error: \(error?.localizedDescription ?? nil)");
            return ;
        }
        else {
            if (dynamicLink) {
                [self handleIncomingDynamicLink:dynamicLink];
            }
            else {

            }
        }
    }];

    if (linkHandled) {
        return true;
    }
    else {
        // if handling universal link from any other resources. May be do other things from the incoming url
        return false;
    }
}

return false;

}

ios objective-c swift firebase-dynamic-links xcode11.4
1个回答
0
投票
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

    if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
        if let url = dynamicLink.url{
            handleDynamicLink(dynamicLink)
        }
        return true
    }
}

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {

    guard let incomingUrl = userActivity.webpageURL else { return false }
    let links = DynamicLinks.dynamicLinks()
    let handled = links.handleUniversalLink(incomingUrl) { (dynamicLink, error) in

        if let url = dynamicLink?.url{
            handleDynamicLink(dynamicLink)
        }
    }
    return handled
}
© www.soinside.com 2019 - 2024. All rights reserved.