小编Ole*_*nov的帖子

Firebase待处理动态链接无效

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

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
Run Code Online (Sandbox Code Playgroud)

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

但是当我尝试测试这个"待定动态lynks"功能时,这两个AppDelegate方法都没有被调用

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

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

所以,我的问题是:"待定动态链接"如何工作?可能是我的应用程序无法处理它们的原因?

- - - - - - - - 编辑 - - - - - - - -

问题是,默认情况下,Firebase尝试使用URL方案打开应用程序,该方案等于应用程序包ID,这不是我的情况.我已将Firebase的配置更改为下一个:

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

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

ios firebase firebase-dynamic-links

7
推荐指数
1
解决办法
2694
查看次数

标签 统计

firebase ×1

firebase-dynamic-links ×1

ios ×1