2017-02-10 151 views
11

我工作的一个应用程序iPhone和Apple关注之间共享数据,使用WCSession方法sendMessage:replyHandler:errorHandler:WCErrorCodeDeliveryFailed:有效载荷无法交付

实施该方法后,我得到这样的错误:

WCSession _onqueue_notifyOfMessageError :withErrorHandler:errorHandler:YES和WCErrorCodeDeliveryFailed。

错误=无法传送有效载荷。

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

任何帮助表示赞赏。

+0

也许[这](http://stackoverflow.com/questions/33200630/wcsession-sendmessagereplyhandler-error-code-7014-wcerrorcodedeliveryfailed)不帮你吗? –

+0

@ReinhardMännernope。那没有 – SahyadriChava

回答

5
  1. 您是否有session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void)在ios端的WCSessionDelegate?
  2. 你打电话replyHandler()这个方法里面?

请注意,session(_ session: WCSession, didReceiveMessage message: [String : Any])将仅用于未发送replyHandler的邮件。

+0

这是正确的答案。如果提供了'replyHandler'但其他应用程序不执行与'replyHandler'变异,请求将失败。 –