经过一些调查后,我发现Firebase有一个叫做“待定动态链接”的东西,并且可以预期,使用这些链接调用AppDelegate方法:
- (BOol)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationopenURLOptionsKey,ID> *)options
这个假设的来源:
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
同时,如果安装了应用程序,动态链接将按预期工作,通过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];
它开始工作,例如openURL:方法在第一个应用程序打开时立即调用,如果之前在设备上打开了链接.
解决方法 安装后深度链接基于检查标志:> [FIRApp配置]调用
>动态链接SDK检查它是否是全新安装(例如,没有标记存在)
>如果是这样,它会调用Dynamic links API来检查是否有要解析的动态链接
>如果是,则SDK调用[[UIApplication sharedApplication] openURL:url];使用在FIROptions上手动设置的自定义URL方案或小写包ID(例如com.foo.bar).
如果您没有收到,请检查是否正确定义了自定义URL方案.
总结以上是内存溢出为你收集整理的ios – Firebase挂起的动态链接无效全部内容,希望文章能够帮你解决ios – Firebase挂起的动态链接无效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)