【问题标题】:continueUserActivity not called未调用 continueUserActivity
【发布时间】:2018-02-06 10:00:02
【问题描述】:

我有一个支持通用链接的应用。一切看起来都设置正确。我在服务器上有一个apple-app-site-association 文件,将适当的链接添加到关联域,我还将application:continueUserActivity:restorationHandler 添加到AppDelegate。 最后,我添加了一个指向我的 Notes 应用程序的链接,当我单击该链接并按住它时,我可以在“MyApp”中看到“打开”按钮。当我点击按钮时,iOS 会打开应用程序,但永远不会调用 application:continueUserActivity:restorationHandler。更神秘的是 application:willContinueUserActivityWithType: 被调用(当然我在这里返回 YES)

更新:如果我的应用程序没有在后台模式下运行并且我单击链接我打开我的应用程序并在launchOptionsapplication:didFinishLaunchingWithOptions: 参数中获得NSUserActivity 对象。但仍然没有调用 application:willContinueUserActivityWithType:

【问题讨论】:

    标签: ios objective-c ios-universal-links


    【解决方案1】:

    我知道这是一个老问题,但我自己也遇到过这个问题。你迁移到更新版本的 Swift 了吗?就我而言,该功能在迁移后停止工作。该函数已重命名为

    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool

    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool

    希望这会有所帮助!

    【讨论】:

    • 很好的答案!我使用了 xCode 的 Swift 转换工具,但不知何故它错过了该功能。由于 Swift 没有像 Java/Android 这样的 @Override 注解,所以我没有从编译器中得到任何错误……甚至没有想到要手动检查方法签名。
    • 太棒了。谢谢@Franlon。也解决了我的问题。我已经从一个项目中复制了整个代码,包括旧函数..但在一个版本中,我是 4.1 版本,而在新版本中是 4.2
    • 3 天我浪费了试图解决这个问题。啊。谢谢!!
    • 谢谢!为此损失了大约8个小时。修复了所有警告,没有人提到过时的方法签名。至少我了解了更多关于 UIScenes 的知识,但我真的很喜欢 Apple……不是你做过的最好的 Xcode!
    猜你喜欢
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2017-05-02
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    相关资源
    最近更新 更多