我已经在我的应用程序中使用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中引入。
任何帮助将不胜感激。
谢谢!!
我遇到了同样的问题,我发现我的应用程序中集成的SDK Firebase阻止了以下回调:application:openURL:options
。
没有配置Firebase,一切正常。
这不仅仅是配置Firebase SDK导致此问题。使用Firebase SDK它运行正常但是我的应用程序中也集成了Localytics SDK,FIREBASE和LOCALYTICS SDK之间存在一些冲突,因为我的应用程序没有得到回调。
所以我刚刚根据优先级删除了Firebase框架,一切都运行良好。
正如Localytics Documentation中所提到的,两个平台的集成都可能导致冲突,特别是在处理深层链接时。
您可以通过在应用的info.plist中将FirebaseAppDelegateProxyEnabled设置为NO来阻止Firebase调整AppDelegate中的方法,如Firebase documentation中所述。