如何通过WatchConnectivity将UIImage
从iPhone传输到Apple Watch,而无需用户在手机上进行交互,并且仅在手表以编程方式调用它时才加载。我需要这一点,因为创建UIImage
的图像处理使用了Watchkit API中不可用的逻辑,因此必须从手机中创建。我看过一些手表连接的示例,使用:
func startSession() {
session?.delegate = self
session?.activateSession()
}
然而,我是手表套件的新手,我对如何使用这个会话管理器感到困惑,特别是从手表到设备,而不是像我在苹果文档中看到的相反。有人能提供一个例子,说明如何在手表和手机上都这样做,以便从手表在手机上调用UIImage
吗?
3条答案
按热度按时间9fkzdhlc1#
若要在iPhone和Apple Watch之间传输文件,您应该使用Watch Connectivity,使用
WCSession
来正确处理通信。您可以使用WCSessionDelegate
的didReceiveMessageData
委托方法将UIImage
作为NSData
发送。首先你应该知道的是将你的
UIImage
转换成NSData
,反之亦然。你可以使用下面的代码:如果是PNG图像
如果是JPG图像
然后你可以使用
WCSession
来发送消息,就像按照下面的方式:视图控制器.swift
界面控制器.swift
在上面的代码中,当你打开
ViewController
时,它会发送UIImage
,上面的例子只是为了学习,你必须根据项目的复杂性以更合适的方式处理它。我希望这对你有帮助。
fdbelqdn2#
你必须将你的图像作为NSData传输,然后在手表上解码它。你可以看看我的博客文章,我在那里讨论了类似的情况。http://eluss.github.io/AppleWatch_iPhone_data_transfer/
这不是会话的方式,因为我当时没有意识到这一点,但也许它会帮助你得到整个逻辑。
1mrurvl13#
在InterfaceController中,如果您使用WCSessionDelegate,请记得以下列方式扩充activationDidCompleteWith方法: