如何在后台唤醒iPhone应用程序以运行功能并将结果返回给Apple Watch?

bkSwifty

我的Apple Watch应用程序中有一个表,该表由iPhone应用程序中的数据填充。

在iPhone应用程序上,我需要从互联网上获取此数据。在电话上,该函数称为retrieveData()。我还有一个名为sendToWatch()的函数,该函数可在手机应用程序打开时将此数据发送到手表。

我想找到一种无需打开电话应用程序即可运行retrieveData()和sendToWatch()的方法。在过去的几个小时中,我一直在研究这个问题,而且看起来非常复杂。

我已经尝试过Apple文档上的openParentApp函数,但是我不知道如何设置或实现它。在过去的几个小时里,我尝试过在线搜索教程,但是一切都已经过时了,我没有运气。

有人知道有什么好的教程吗?

小川浩介

如您所知,您不能openParentApp在watchOS 2中使用。您可以使用Watch Connectivity代替openParentApp

参考 http://www.kristinathai.com/watchos-2-how-to-communicate-between-devices-using-watch-connectivity/

以下是一个示例。

1)sendMessage从Apple Watch拨打电话的方法

WCSession.defaultSession().sendMessage(applicationDict,
   replyHandler: { ([String : AnyObject]) → Void in
      // Handle reply
   })
   errorHandler: { (NSError) → Void in
      // Handle error
});

2)didReceiveMessage在您的iPhone中调用方法

使用此方法运行retrieveData()并将数据发送到Apple Watch。

func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
    // run retrieveData()

    // send data to Apple Watch
    replyHandler(["retrievedData" : data])
}

3)replyHandler在Apple Watch中接收数据

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章