Sah*_*ava 14 ios swift watchconnectivity wcsession watchos-3
我正在开发一款使用WCSession方法 在iPhone和Apple Watch之间共享数据的应用程序sendMessage:replyHandler:errorHandler:
实现该方法后,我收到如下错误:
WCSession _onqueue_notifyOfMessageError:withErrorHandler:errorHandler:YES,WCErrorCodeDeliveryFailed.
错误=无法传递Payload.
import Foundation
import WatchKit
import WatchConnectivity
class ResultInterfaceController: WKInterfaceController, WCSessionDelegate {
override func awake(withContext context: Any?) {
super.awake(withContext: context)
let applicationData = ["name": "ViratKohli"]
self.sendToPhone(data: applicationData)
}
func sendToPhone(data: [String: Any]) {
if WCSession.isSupported() {
let session = WCSession.default
session().delegate = self
session().activate()
if WCSession.default().isReachable {
session().sendMessage(data, replyHandler: {(_ replyMessage: [String: Any]) -> Void in
print("ReplyHandler called = \(replyMessage)")
WKInterfaceDevice.current().play(WKHapticType.notification)
},
errorHandler: {(_ error: Error) -> Void in
print("Error = \(error.localizedDescription)")
})
}
}
}
....
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
abj*_*ato 11
session(_ session: WCSession, didReceiveMessage
message: [String : Any], replyHandler: @escaping ([String : Any]) ->
Void)ios方面的WCSessionDelegate吗?replyHandler()在这个方法里面打电话吗?请注意session(_ session: WCSession, didReceiveMessage message: [String : Any])仅对没有replyHandler发送的消息调用.
我遇到了同样的麻烦。如果您使用 replyHandler 发送消息,则必须使用
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
}
Run Code Online (Sandbox Code Playgroud)
代替
func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
}
Run Code Online (Sandbox Code Playgroud)
用于接收消息。
| 归档时间: |
|
| 查看次数: |
2640 次 |
| 最近记录: |