![](/img/trans.png)
[英]WatchOS2 WCSession sendMessage doesn't wake iPhone on background
[英]WatchOS 3 : Why does WCSession never activate on iPhone?
我正在創建一個簡單的應用程序,其中涉及Apple Watch和iPhone之間的通信。
當前在WatchOS 3.2.2上使用iPhone 6s(10.3.2)
我無法讓兩者進行交流,我的難題是WCSession無法在iPhone上激活。
當WatchOS代碼運行時,控制台將按預期方式打印出“ activationDidCompleteWithState”,表明WCSession已被激活(請參見下面的代碼)。
但是,在iOS端,“ activationDidCompleteWithState”方法永遠不會打印到控制台。 如果我嘗試從手表向手機發送消息,它們會超時,並且出現以下錯誤:
[WC]-[WCSession onqueue_handleMessageCompletionWithError:withMessageID:] 109FE5D2-6218-4D67-AFD7-E72FA7E4A22E由於WCErrorCodeTransferTimedOut-> IDSErrorTypeTimedOut-> IDSResponseTimedOut
我相信WCSession永遠不會在電話上激活。 有人見過這個問題嗎? 我為此而發瘋...
我以前是使用WatchOS 2構建的,並且運行良好。 不知何故,對WatchOS 3的更新使我深感滿意。我們將不勝感激。
AppDelegate.m中的iOS代碼:
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if ([WCSession isSupported])
{
WCSession* session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
return YES;
}
- (void)session:(WCSession *)session activationDidCompleteWithState:(WCSessionActivationState)activationState
error:(NSError *)error
{
NSLog(@"PHONE - activationDidCompleteWithState");
}
ExtensionDelegate.m中的WatchOS代碼:
@implementation ExtensionDelegate
- (void)applicationDidFinishLaunching
{
if ([WCSession isSupported])
{
WCSession* session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
}
- (void)session:(WCSession *)session activationDidCompleteWithState:(WCSessionActivationState)activationState
error:(NSError *)error
{
NSLog(@"activationDidCompleteWithState");
}
好的,我知道了。
我給iPhone重新通電,使WCSession在手機上工作。 不得不取消配對手表,然后重新配對。
現在正在工作。 廢話總數...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.