【问题标题】:background fetch in a swift package快速包中的后台获取
【发布时间】:2021-04-27 15:27:07
【问题描述】:

我正在尝试做的事情:- 我正在尝试构建一个自定义 SDK(通过 swift 包管理器),我的客户将只导入并利用这些功能。我的自定义 SDK 帮助连接设备,然后读取数据。我在我的 SDK 中融合了一些云上传功能,它基本上将数据上传到我们的服务器,因为我们也想要这些数据。

问题:- 现在,问题是确保数据上传发生。我计划创建一个后台服务,该服务将持续运行并确保上传任何未上传的文件。问题是IOS没有像Services这样的选项(就像在Android中一样),我看到Background-Fetch可以工作。

但真正的问题是我正在构建一个 SDK。

那么,我的问题是:- 是否有可能在 SDK/swift 包中提供后台获取功能?

【问题讨论】:

    标签: ios swift sdk background-fetch


    【解决方案1】:

    是的,这是可能的!但是您需要将一些说明传递给您的客户端,因为后台获取需要直接在应用程序中进行配置,而不是在 SDK 中。

    您可以创建自己的函数来实现后台获取

    public func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { ... }
    

    您的客户将在他们的应用程序中调用此函数。像这样的

    public func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { 
        YourSDK().application(...)
    }
    

    另外,请记住应用需要添加后台获取功能

    【讨论】:

    • 我实际上是想让我的客户尽可能简单,因此向他们传递指令并不是最好的方法。另外,我正在尝试实现一些由我们控制而不是客户控制的东西。因为我们要确保此后台提取始终在运行。如果我们让客户自行决定,客户可以轻松绕过这一步。
    • 我明白了。不幸的是,我真的相信 Apple 并没有给我们提供一种方法来让这个功能完全在 SDK 中实现。据我所知,功能应该添加到应用程序中
    • 好的,谢谢你的回答!
    猜你喜欢
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多