我正在尝试使用Firebase将深层链接传递到我的应用程序中,以便在安装后幸存下来。

为了测试这一点,我遵循Firebase文档和Firecast视频here提供的步骤,时间约为12分40秒。步骤如下:

  • 首先,我从设备中删除该应用程序。
  • 然后,我按链接打开应用程序商店。
  • 然后我从xcode运行我的应用程序。
  • 预期值:application:openURL
  • 中的dynamicLink.url属性将等于“https://www.example.com/data/helloworld”
  • 现实:dynamicLink.url属性到达nil。

  • 这是我在Firebase控制台中创建的Deeplink网址:https://nqze6app.goo.gl/RIl8

    这是传递给application:openURL的URL,然后传递给dynamicLinkFromCustomSchemeURL:com.johnbogil.voices://google/link/dismiss?fdl_cookie

    这是我的openURL调用中的代码:
    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
      FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
      if (dynamicLink) {
        NSLog(@"I am handling a link through the openURL method");
        [self handleDynamicLink:dynamicLink];
        return YES;
      } else {
        return NO;
      }
    }
    

    不知道为什么dynamicLink.url到达nil。任何帮助表示赞赏。

    最佳答案

    对于任何其他遇到此错误的人...

  • 如果您的application:openURL方法被调用,并且
  • 您似乎确实从dynamicLink方法中获取了有效的dynamicLinkFromCustomSchemeURL对象,但是
  • 该dynamicLink对象的url参数为nil

  • 然后仔细检查以查看您是否在Safari中处于“私有(private)”模式。这将与Firebase动态链接检索您单击的原始链接的能力有些困惑。

    10-08 18:11