我正在尝试从手表扩展向手机发送消息以更新并发症。
AppDelegate.swift
var session = WCSession.defaultSession()
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
if WCSession.isSupported(){
session.delegate = self
session.activateSession()
}
return true
}
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
replyHandler(["scheduleNames":scheduleNames, "scheduleData":scheduleData])
}
ExtensionDelegate.swift
override init(){
super.init()
if WCSession.isSupported(){
session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
}
self.sendMessage()
}
func sendMessage(){
print("Attempting to send message")
session.sendMessage(["Sender": "Complication"], replyHandler: {
reply in
print(reply.description)
}, errorHandler: {
error in
print(error.description)
})
}
但是当我运行手表模拟器(并且手机应用程序未打开)时,我收到
错误域 = WCErrorDomain 代码 = 7007 “配对设备上的 WatchConnectivity 会话不可访问。”
这也出现在实体手机和手表上。
这可能是什么原因造成的?
更新
这只发生在我从分机拨打电话时。手表应用程序可以很好地发送和接收消息。此外,它在从 applicationDidFinishLaunching() 调用时有效,但在扩展委托中没有任何其他内容。
更新
我修复了以前的,现在得到
WatchConnectivity 会话没有委托。