Firebase待处理动态链接无效

时间:2016-09-21 09:41:21

标签: ios firebase firebase-dynamic-links

根据Firebase动态链接文档,即使未安装应用程序,如果用户打开设备上的链接,Appstore上的应用程序页面也会打开,一旦安装了应用程序,应用程序就会在第一次启动时处理该链接。 经过一些调查后,我发现Firebase有一些名为"待定动态链接",并且预计会使用这些链接调用AppDelegate方法:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options

这个假设的来源: https://groups.google.com/forum/#!msg/firebase-talk/2STD8eIi61I/8KJqZN7TBAAJ

但是当我尝试测试这个&#34;等待动态的lynks&#34;功能,这两个AppDelegate方法都没有被调用

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options

同时,如果安装了应用,动态链接会按预期工作,如果从gmail应用通过Chrome打开,通过openURL:方法打开,通过iOS9及以后的通用链接打开,如果从Notes或Mail应用程序打开(通过Safari实际)。

所以,我的问题是:&#34;等待动态链接&#34;期待工作?可能是我的应用程序无法处理它们的原因是什么?

---------------- EDIT ----------------

问题是,默认情况下,Firebase会尝试使用与我们的情况相同的应用程序包ID等URL方案打开应用程序。我已将Firebase的配置更改为下一个:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];
options.deepLinkURLScheme = @"MY-CUSTOM-SCHEME";
[FIRApp configureWithOptions:options];

它开始工作,例如如果之前在设备上打开了链接,则会在第一个应用程序打开时立即调用openURL:方法。

2 个答案:

答案 0 :(得分:7)

安装后深度链接基于检查标志:

  • [FIRApp configure]名为
  • 动态链接SDK会检查它是否是全新安装(例如,没有标记)
  • 如果是,则调用Dynamic Links API检查是否存在要解析的动态链接
  • 如果是,则SDK使用在[[UIApplication sharedApplication] openURL:url];上手动设置的自定义URL方案或小写包ID(例如com.foo.bar)调用FIROptions

如果您没有收到,请检查自定义网址方案是否已正确定义。

答案 1 :(得分:0)

要澄清一点,如果我对链接的Google网上论坛帖子的理解是正确的,Firebase动态链接库只会检查未决动态链接&#39;一旦。永远。因此,如果应用已经检查了待处理的链接,则您需要将其删除并重新安装以再次检查。

现在回答你的问题,如果在点击链接时没有安装应用,那么这两种方法都不会被通常调用。 openURL方法响应自定义URI方案,continueUserActivity方法响应Universal Links。在第一次下载后,当用户手动打开应用程序时,这些都不会被使用。 Firebase documentation确实说初始安装时始终会调用openURL方法,但我从未见过其他任何地方发生的事情,因此他们可能会做一些与众不同的事情。

冒着偏离主题的风险,我建议看看Branch.io(完全披露:我在团队中)。您将获得动态链接的所有好处,以及额外功能和更清晰文档的清单:)