【问题标题】:application:openUrl:options not called when opening app from share sheet of another app应用程序:openUrl:从另一个应用程序的共享表打开应用程序时未调用选项
【发布时间】:2020-03-20 14:08:12
【问题描述】:

我想用我的应用打开 zip 文件并配置以下内容:

文档类型

这会导致我的应用出现在其他应用的共享表中。但是当我在该共享表中点击我的应用程序时,我的应用程序已打开,但我的 AppDelegate 中的以下方法从未被调用:

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

这是一个 iOS 13 应用程序 - 我在这里缺少什么?

【问题讨论】:

  • 尚未测试但 afaik,如果应用程序未启动,那么它将在 application(_:didFinishLaunchingWithOptions) 中可用。如果应用程序在后台,则应调用application(_:open:options:)
  • 应用程序正在运行,然后我正在切换到另一个应用程序,打开共享表并选择我的应用程序,所以它应该在后台运行
  • application(_:continue:restorationHandler:) 呢?
  • 只返回true,但也不被调用
  • 所以这3个方法都没有被调用:application(_:didFinishLaunchingWithOptions) / application(_:open:options:) / application(_:continue:restorationHandler:)?

标签: swift ios13 ios-sharesheet


【解决方案1】:

如果您的应用正在使用场景,那么 iOS 将调用来自UISceneDelegatescene(_:openURLContexts:),而不是来自UIApplicationDelegate 协议的application(_:open:options:)

https://developer.apple.com/documentation/uikit/uiscenedelegate/3238059-scene

也可能最好将com.pkware.Zip-archive 更改为com.pkware.zip-archive,因为它在System-Declared UTIs 列表中被定义为小写

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多