在iOS11中深层链接回调问题

问题描述 投票:2回答:3

我已经在我的应用程序中使用URL模式实现了深度链接,该模式在除了11之外的所有iOS版本中都能正常工作。问题是当我在设备浏览器中加载AppURLSchema://时它会启动应用程序,但没有任何appDelegate方法被调用到获取深层链接URL,以便我可以执行深层链接,以便用户能够根据URL查看不同的内容。

以下函数均未被调用:

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

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

这不是iOS 10上的问题,似乎已经在iOS 11中引入。

任何帮助将不胜感激。

谢谢!!

ios deep-linking ios11 url-scheme openurl
3个回答
1
投票

我遇到了同样的问题,我发现我的应用程序中集成的SDK Firebase阻止了以下回调:application:openURL:options

没有配置Firebase,一切正常。


1
投票

这不仅仅是配置Firebase SDK导致此问题。使用Firebase SDK它运行正常但是我的应用程序中也集成了Localytics SDK,FIREBASE和LOCALYTICS SDK之间存在一些冲突,因为我的应用程序没有得到回调。

所以我刚刚根据优先级删除了Firebase框架,一切都运行良好。


0
投票

正如Localytics Documentation中所提到的,两个平台的集成都可能导致冲突,特别是在处理深层链接时。

您可以通过在应用的info.plist中将FirebaseAppDelegateProxyEnabled设置为NO来阻止Firebase调整AppDelegate中的方法,如Firebase documentation中所述。

© www.soinside.com 2019 - 2024. All rights reserved.