WCErrorCodeDeliveryFailed:无法交付有效载荷 [英] WCErrorCodeDeliveryFailed: Payload could not be delivered

查看:302
本文介绍了WCErrorCodeDeliveryFailed:无法交付有效载荷的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用WCSession方法sendMessage:replyHandler:errorHandler:

实现该方法后,我得到如下错误:

After implementing that method I get the error like:

WCSession _onqueue_notifyOfMessageError:withErrorHandler:errorHandler:是,带有WCErrorCodeDeliveryFailed.

WCSession _onqueue_notifyOfMessageError:withErrorHandler: errorHandler: YES with WCErrorCodeDeliveryFailed.

错误=无法交付有效载荷.

Error = Payload could not be delivered.

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)")
            })
         }
    }
}
....

任何帮助表示赞赏.

推荐答案

  1. 在iOS端的WCSessionDelegate上是否有session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void)?
  2. 您要在此方法内调用replyHandler()吗?
  1. Do you have session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) on ios side's WCSessionDelegate?
  2. Are you calling replyHandler() inside this method?

请注意,session(_ session: WCSession, didReceiveMessage message: [String : Any])仅在不使用ReplyHandler的情况下发送的消息才会被调用.

Pay attention that session(_ session: WCSession, didReceiveMessage message: [String : Any]) will be called only for messages sent without replyHandler.

这篇关于WCErrorCodeDeliveryFailed:无法交付有效载荷的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆