【问题标题】:Firebase Dynamic Links not working when the application is not launched未启动应用程序时 Firebase 动态链接不起作用
【发布时间】:2020-04-02 05:46:14
【问题描述】:

当应用程序在后台运行时,它运行良好。但是,当应用程序已安装但当时未启动时,它只是打开应用程序而不是重定向到相应的屏幕。请帮助我摆脱这种情况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;
}

【问题讨论】:

  • 这里为什么是目标c?
  • 对不起,我的错。更正。你现在能帮帮我吗?

标签: ios objective-c swift firebase-dynamic-links xcode11.4


【解决方案1】:

深层链接实现 - 您应该在 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
}

【讨论】:

  • 我已经做到了。应用程序未启动时会发生什么?这两种方法中的任何一种都不会触发。这是我的担心。请指教。
  • 您是否在安装应用程序但未启动后再次点击链接检查?
  • 你能不能只调试 firebase 深度链接,只需在你的深度链接末尾添加“?d=1”。示例“example.page.link/suffix?d=1”
猜你喜欢
  • 1970-01-01
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 2021-08-07
相关资源
最近更新 更多