gpt4 book ai didi

ios - Firebase 挂起的动态链接不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:48:41 25 4
gpt4 key购买 nike

根据 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

但是当我尝试测试这个“pending dynamic 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

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

所以,我的问题是:“挂起的动态链接”是如何工作的?我的应用无法处理它们的原因可能是什么?

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

问题是,默认情况下,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: 如果之前在设备上打开过链接,则在第一个打开的应用程序上调用该方法。

最佳答案

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

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

如果您没有收到,请检查自定义 URL 架构是否已正确定义。

关于ios - Firebase 挂起的动态链接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39612897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com