【问题标题】:How to handle custom url schemes in swift (XCode 8)?如何在 swift (XCode 8) 中处理自定义 url 方案?
【发布时间】:2016-10-16 20:30:02
【问题描述】:

我尝试使用此函数从自定义 url 接收参数:

func application(_ application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    return true;
}

但是,该函数从未被调用,并且我收到警告:“实例方法 'application(:openURL:sourceApplication:annotation:)' 几乎匹配可选参数 'application(:open:sourceApplication:annotation :)' 协议'UIApplicationDelegate。

基于XCode 8 Warning "Instance method nearly matches optional requirement" 我尝试使用@objc 没有成功。如何构建一个将在打开应用程序时调用的函数并为我提供自定义 url 方案中的参数?

【问题讨论】:

  • 你为什么不赞成接受的答案?该用户花时间帮助您!

标签: ios swift swift3


【解决方案1】:

请参阅UIApplicationDelegate 的文档。在 Swift 3 下,委托方法是:

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

没有

func application(_ application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    return true;
}

但无论如何,那个已经被弃用了。您应该使用(使用 iOS 9.0 及更高版本):

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

【讨论】:

    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2017-07-18
    • 2019-01-29
    • 1970-01-01
    相关资源
    最近更新 更多