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

时间:2016-08-23 17:51:01

标签: ios firebase deep-linking dynamic-linking firebase-dynamic-links

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

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

  1. 首先,我从我的设备中删除该应用。
  2. 然后我按下链接打开应用程序商店。
  3. 然后我从xcode运行我的应用程序。
  4. 预期:在应用程序中,dynamicLink.url属性将等于“https://www.example.com/data/helloworld”:openURL
  5. Reality:dynamicLink.url属性到达nil。
  6. 这是我在Firebase控制台中创建的深层链接网址: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。任何帮助表示赞赏。

5 个答案:

答案 0 :(得分:5)

我有同样的问题。我收到 restorationHandler 的回调,但是在 handleUniversalLink 回调 dynamiclink 中,错误都是零。花了一些时间我发现了我的问题。

原来,url区分大小写。例如,如果您的网址是:

<强> https://xzz6b.app.goo.gl/0EWv

您在笔记中写了 https://xzz6b.app.goo.gl/0ewv 并点击了它。它会加载你的应用甚至给你回调 restorationHandler ,但 dynamiclink 将是零。

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

希望它可以帮助任何人。

答案 1 :(得分:3)

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

  1. 如果您的application:openURL方法被调用,
  2. 您似乎从dynamicLink方法获得了有效的dynamicLinkFromCustomSchemeURL对象,但
  3. 该dynamicLink对象的url参数为nil
  4. 然后仔细检查以确定您是否在&#34;私人&#34; Safari中的模式。这有点像Firebase Dynamic Links&#39;能够检索您单击的原始链接。

答案 2 :(得分:0)

我遇到了同样的问题。

解决方案:

来自docs

如果您的应用首次启动时未找到动态链接(在任何 版本的iOS),该方法将通过FIRDynamicLink的 url设置为nil,表示SDK找不到匹配项 待处理的动态链接。

所以您必须检查此步骤

在应用程序Xcode项目的“信息”标签中,创建一个新的URL类型以 用于动态链接。将“标识符”字段设置为唯一值 网址格式字段作为您的捆绑包标识符,即 动态链接使用的默认URL方案。

答案 3 :(得分:0)

尝试更新Firebase / DynamicLinks。 我遇到了同样的问题,然后运行pod update Firebase / DynamicLinks。 现在pod Firebase / DynamicLinks的版本为6.21.0,并且DynamicLink对象具有正确的url值。

答案 4 :(得分:0)

就我而言,这是因为我使用的是自定义域,而我错过了 docs(参见第 3 点)中明确指出您需要使用以下内容列出动态链接 URL 前缀的部分FirebaseDynamicLinksCustomDomains 文件中名为 Info.plist 的键。