观看连接会话问题
Watch connectivity session issues
我正在尝试从手表扩展程序向 phone 发送消息以更新复杂功能。
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)
})
}
但是当我 运行 手表模拟器(并且 phone 应用程序未打开)时,我收到
Error Domain=WCErrorDomain Code=7007 "WatchConnectivity session on paired device is not reachable."
这也出现在实体 phone 和观看中。
可能是什么原因造成的?
更新
只有当我从分机拨打电话时才会发生这种情况。手表应用程序可以正常发送和接收消息。此外,它在从 applicationDidFinishLaunching() 调用时有效,但在扩展委托中无效。
更新
我修复了之前的问题,现在得到
WatchConnectivity session has no delegate.
感谢,我解决了这个问题。在 requestedUpdateDidBegin() 中从 Complication(我正在做的)调用执行一个异步方法 在 一个异步方法中,导致更新函数在 sendMessage 函数之前结束 returns.
我正在尝试从手表扩展程序向 phone 发送消息以更新复杂功能。
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)
})
}
但是当我 运行 手表模拟器(并且 phone 应用程序未打开)时,我收到
Error Domain=WCErrorDomain Code=7007 "WatchConnectivity session on paired device is not reachable."
这也出现在实体 phone 和观看中。
可能是什么原因造成的?
更新
只有当我从分机拨打电话时才会发生这种情况。手表应用程序可以正常发送和接收消息。此外,它在从 applicationDidFinishLaunching() 调用时有效,但在扩展委托中无效。
更新
我修复了之前的问题,现在得到
WatchConnectivity session has no delegate.
感谢