安装后,Firebase动态深层链接到达零

Joh*_*ohn 4 dynamic-linking deep-linking ios firebase firebase-dynamic-links

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

为了测试这一点,我按照Firebase文档和此处的 Firecast视频提供的步骤进行操作,时间约为12分40 秒。步骤如下:

  1. 首先,我从设备中删除了该应用。
  2. 然后,我按链接打开应用程序商店。
  3. 然后我从xcode运行我的应用程序。
  4. 预期:dynamicLink.url属性将等于application:openURL中的“ https://www.example.com/data/helloworld”
  5. 现实: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; 
  } 
}
Run Code Online (Sandbox Code Playgroud)

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

Noo*_*utt 6

我遇到过同样的问题。我得到的回调restorationHandlerhandleUniversalLink回调dynamiclink和错误两者都是零。花了一段时间后,我发现了我的问题。

事实证明,URL区分大小写。例如,如果您的网址是:

https://xzz6b.app.goo.gl/0EWv

然后您在笔记中写了https://xzz6b.app.goo.gl/0ewv并单击了它。这将载入您的应用程序,甚至给你回调restorationHandlerdynamiclink将是零。

您甚至可以在浏览器中尝试。

希望它能对任何人有帮助。


Tod*_*man 4

对于遇到同样错误的其他人......

  1. 如果你的application:openURL方法被调用,并且
  2. 您似乎确实dynamicLink从您的方法中获得了一个有效的对象dynamicLinkFromCustomSchemeURL,但是
  3. 该dynamicLink对象的参数url为nil

然后仔细检查 Safari 中是否处于“私人”模式。这会有点扰乱 Firebase 动态链接检索您单击的原始链接的能力。