Firebase 动态深层链接在安装后到达 nil
Posted
技术标签:
【中文标题】Firebase 动态深层链接在安装后到达 nil【英文标题】:Firebase dynamic deep link arrives nil after install 【发布时间】:2016-08-23 17:51:00 【问题描述】:我正在尝试使用 Firebase 将深层链接传递到我的应用中,这些链接在安装后仍然存在。
为了测试这一点,我按照 Firebase 文档和 Firecast 视频here 在大约 12 分钟 40 秒时提供的步骤进行操作。步骤如下:
-
首先我从我的设备中删除该应用程序。
然后我点击链接打开应用商店。
然后我从 xcode 运行我的应用程序。
预期:dynamicLink.url 属性将等于 application:openURL 中的“https://www.example.com/data/helloworld”
现实:dynamicLink.url 属性为零。
这是我在 Firebase 控制台中创建的深层链接网址:https://nqze6app.goo.gl/RIl8
这是在传递到 dynamicLinkFromCustomSchemeURL 之前传递到 application:openURL 的 URL: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 到达零。任何帮助表示赞赏。
【问题讨论】:
你能不能也分享一下... 1.你的application:openURL
电话的内容? 2、完全展开的动态链接? (在 Firebase 控制面板中,单击溢出菜单中的“链接详细信息”,您应该会在下面看到它。)
@ToddKerpelman 1) ` - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary我有同样的问题。我收到了 restorationHandler 的回调,但在 handleUniversalLink 回调中 dynamiclink 和错误都为零。花了一些时间后,我发现了我的问题。
原来,url 区分大小写。例如,如果您的网址是:
https://xzz6b.app.goo.gl/0EWv
你在笔记中写了 https://xzz6b.app.goo.gl/0ewv 并点击了它。它会加载你的应用,甚至给你回调 restorationHandler 但 dynamiclink 将为 nil。
你甚至可以在浏览器中尝试。
希望对大家有所帮助。
【讨论】:
是的。最后一个额外的字符也会产生相同的效果,比如xzz6b.app.goo.gl/0EWv'【参考方案2】:对于遇到同样错误的其他人...
-
如果您的
application:openURL
方法被调用,并且
您似乎确实从您的 dynamicLinkFromCustomSchemeURL
方法中获得了有效的 dynamicLink
对象,但是
dynamicLink 对象的url
参数为零
然后仔细检查您是否在 Safari 中处于“私人”模式。这会有点影响 Firebase 动态链接检索您点击的原始链接的能力。
【讨论】:
我尝试了所有但仍然得到 FIRDynamicLink 和错误都为零 你也可以帮忙吗:***.com/q/42093902/6144372【参考方案3】:在我的情况下,这是因为我使用的是自定义域,而我错过了 docs(参见第 3 点)中明确指出您需要使用键列出动态链接 URL 前缀的位在您的 Info.plist
文件中调用 FirebaseDynamicLinksCustomDomains
。
【讨论】:
【参考方案4】:我也遇到过同样的问题。
解决办法:
来自docs
如果在您的应用首次启动时(在任何 iOS 版本),此方法将使用 FIRDynamicLink 调用 url设置为nil,表示SDK找不到匹配的 待处理的动态链接。
所以你必须检查这一步
在您应用的 Xcode 项目的 Info 选项卡中,创建一个新的 URL 类型以 用于动态链接。将标识符字段设置为唯一值 并将 URL 方案字段作为您的包标识符,即 动态链接使用的默认 URL 方案。
【讨论】:
【参考方案5】:尝试更新 Firebase/DynamicLinks。 我遇到了同样的问题,然后我运行 pod update Firebase/DynamicLinks。 现在 pod Firebase/DynamicLinks 是 6.21.0 版本,DynamicLink 对象具有正确的 url 值。
【讨论】:
以上是关于Firebase 动态深层链接在安装后到达 nil的主要内容,如果未能解决你的问题,请参考以下文章
使用 React Native 在 Firebase 中使用动态链接设置带有查询参数的动态深层链接
带有颤动的 Firebase 动态链接:深层链接 URL 未打开应用程序
Firebase 动态链接没有与自定义标签上的短 URL 进行深度链接
在 iOS 上下载应用后,Firebase 深层链接不跟踪链接(延迟深层链接)