在iOS11中深层链接回调问题

时间:2017-10-06 06:48:32

标签: ios deep-linking ios11 url-scheme openurl

我已经使用网址架构在我的应用中实现了深层链接,该架构在除11 之外的所有iOS版本中都能正常运行。问题是当我在设备浏览器中加载 AppURLSchema:// 时会启动应用,但是没有调用appDelegate方法来获取深层链接网址以便我可以执行深层链接,以便用户能够根据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中引入。

任何帮助将不胜感激。

谢谢!

3 个答案:

答案 0 :(得分:1)

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

如果没有配置Firebase,一切正常。

答案 1 :(得分:1)

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

所以我刚刚根据优先级删除了Firebase框架,一切正常。

答案 2 :(得分:0)

Localytics Documentation中所述,两个平台的集成都可能导致冲突,尤其是在处理深层链接方面。

Firebase documentation中所述,可以通过在应用的info.plist中添加设置为 NO FirebaseAppDelegateProxyEnabled 来防止Firebase混淆AppDelegate中的方法。< / p>