簡體   English   中英

未啟動應用程序時 Firebase 動態鏈接不起作用

[英]Firebase Dynamic Links not working when the application is not launched

當應用程序在后台運行時它工作正常。 但是當安裝了應用程序但當時沒有啟動時,它只是打開應用程序而不是重定向到相應的屏幕。 請幫助我擺脫這種情況 iOS 部署目標是 iOS9.3。我在 iPhone7 iOS 13.4 上運行該應用程序。 這是我的代碼:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {

    FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
    if (dynamicLink != nil) {
    [self handleIncomingDynamicLink:dynamicLink];
    return YES;
    }

    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;
}

深層鏈接實現 - 您應該在 handleDynamicLink 方法中處理導航。

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM