ios - iOS App的AppDelegate中open URL方法的区别

标签 ios swift appdelegate

我在我的 AppDelegate 文件中使用这个方法来处理通过我的 URL 方案打开的应用程序

func application(_ application: UIApplication, open url: URL, 
                 sourceApplication: String?, annotation: Any) -> Bool {}

后来我添加了其他方法(需要iOS 9.0)

func application(_ application: UIApplication, open url: URL,
                 options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {} 

现在我看到第二种方法处理所有应用启动。

  1. 这些方法有什么区别?
  2. 我是否应该用相同的逻辑填充它们,以便我的第一个方法只在 iOS 8 设备上执行。
  3. 如果我对支持 iOS 8 不感兴趣,我可以删除我的第一个方法吗

最佳答案

第一种方法从iOS 4.0 到iOS 9.0 都支持。现在已弃用。 从 9.0 开始,iOS 为 openURL 提供了新方法,这是您的第二种方法。

这两种方法的目的是一样的。因此,如果想同时支持 iOS 8 而不是保留这两种方法,请删除已弃用的方法。

您可以在 UIKit 框架 -> UIApplication.h 中看到这一点(检查下图)

enter image description here

关于ios - iOS App的AppDelegate中open URL方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49253478/

相关文章:

swift - 在单个功能指令中用两个值替换 `if/guard let`

ios - 如何为 View Controller 的 View 设置多个位置状态?

ios - 初始 View Controller 如何快速工作?

ios - AppDelegate 没有响应 NSNotification

android - 强制重新启动完整的应用程序以刷新 Cordova 中的包

iphone - 如何将带有 CAEmitterLayer 的 UIView 添加到我的游戏中?

SwiftyGif 远程 Gif 正在运行但不会显示

objective-c - Swift - 复制完成处理程序

iphone - UIPickerview-从顶部滚动

iphone - 如何在 objective-c 中使用属性的实际示例?