我需要使用iPhone应用程序并实现Watchkit扩展。现在的问题是:确实有很多类,特别是那些负责网络通信的类(身份验证令牌等)。现在,开发这个应用程序的人正在做这样的事情:通过网络通信显示UIAlerts:

class func showReloadDataDialog(_ action: @escaping (_ action: UIAlertAction) -> Void) {
    let alert = UIAlertController.init(title: String.localizedString("AlertTitleError", ""),
                                       message: String.localizedString("ActivationRetrySupportedNetworksLoadMessage", ""),
                                       preferredStyle: .alert)
    let defaultAction = UIAlertAction.init(title: String.localizedString("AlertNoButton", ""), style: .default, handler: nil)
    alert.addAction(defaultAction)
    let reloadAction = UIAlertAction.init(title: String.localizedString("AlertYesButton", ""), style: .default, handler: action)
    alert.addAction(reloadAction)
    self.present(alert)
}

这里是present()函数:
// MARK: Present
class func present(_ alert: UIAlertController) {
    if let window = UIApplication.shared.delegate?.window, var topController = window!.rootViewController {
        while topController.presentedViewController != nil {
            topController = topController.presentedViewController!
        }
        if let navigationController = topController as? UINavigationController {
            topController = navigationController.visibleViewController!
        }
        if topController is UIAlertController {
            return
        }
        topController.present(alert, animated: true, completion: nil)
    }
}

正如你所看到的,他们做的事情和他们应该做的有点不同。现在这真的是个问题,因为我不能在Watchkit扩展中使用这个网络通信类,因为苹果的Watchkit中没有UIViewController——这意味着当我将这个类添加到我的watch目标时,它不会编译。
这只是一个例子,还有很多类似的东西,我真的不想重构整个源代码。
现在我的问题是:我能不能让iPhone做所有的工作(例如,从服务器获取一些数据,同时处理所有的身份验证令牌),然后将结果推送到Watchkit扩展?我读了一些关于WCSession的东西-我可以用这个来做我的案子吗?我基本上是想在aWKInterfaceMap上显示一些poi。

最佳答案

至于您的第一个问题,您将在watchkit中找到有关web服务的解决方案。在链接中,社区建议让iPhone应用程序做一些艰苦的工作(获取数据等),并将信息返回给watchApp。
其次,您可以使用watchconnectivity框架,也可以使用MMWormhole与您的iPhone应用程序进行通信。你所需要做的就是获取兴趣点数据并将其发送到你的watchApp。从那里你可以填充你的地图。

关于ios - 添加Watchkit Extension并让iPhone完成工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48540797/

10-12 07:11