我正在尝试使用Firebase将深层链接传递到我的应用程序中,以便在安装后继续使用。
为了测试这一点,我遵循Firebase文档和Firecast视频here提供的大约12分40秒标记的步骤。步骤如下:
这是我在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。任何帮助表示赞赏。
答案 0 :(得分:5)
我有同样的问题。我收到 restorationHandler 的回调,但是在 handleUniversalLink 回调 dynamiclink 中,错误都是零。花了一些时间我发现了我的问题。
原来,url区分大小写。例如,如果您的网址是:
<强> https://xzz6b.app.goo.gl/0EWv 强>
您在笔记中写了 https://xzz6b.app.goo.gl/0ewv 并点击了它。它会加载你的应用甚至给你回调 restorationHandler ,但 dynamiclink 将是零。
您甚至可以在浏览器中试用它。
希望它可以帮助任何人。
答案 1 :(得分:3)
对于遇到同样错误的其他人......
application:openURL
方法被调用,dynamicLink
方法获得了有效的dynamicLinkFromCustomSchemeURL
对象,但url
参数为nil 然后仔细检查以确定您是否在&#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
的键。