2015-07-20 21 views
2

我正在使用sendMessage功能使用手錶向iPhone發送消息。在iPhone端,我使用didReceiveMessage函數進行回覆。在iPhone端,我正在運行基於發送給它的消息的HTTP請求,並回復請求中的回覆。它通過手錶上的按鈕進行工作。當我第一次按下按鈕時,沒有任何回覆到達手錶,但在第二次嘗試和每一次嘗試之後,我都會得到iPhone的迴應。有誰知道爲什麼第一次嘗試將永遠不會工作?請記住,如果我同時打開了手錶應用程序和iOS應用程序,則第一次嘗試將會起作用。 (在其他情況下,我只有手錶應用程序打開)答覆從iPhone應用程序觀看郵件

+0

你發送回覆處理程序中的HTTP響應?如果您正在進行異步HTTP調用,則可以向Watch發送消息,然後HTTP調用完成 – Philip

+0

我正在應答處理程序中發送HTTP響應 –

+0

您是否考慮過更改它,以便您在發送消息時HTTP請求完成了嗎?這將消除由laggy 3g等造成的錯誤。但是,WC InstantMessaging應該可以工作,即使iphone應用程序沒有運行(第一次也是如此)。嘗試刪除HTTP請求,看看你是否第一次得到響應。 – Philip

回答

0

您需要異步調用HTTP請求並將消息發送回HTTP請求的完成處理程序中的手錶。

這將代碼示例將發送異步請求Link

NSURL *url = [NSURL URLWithString:urlString]; 
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url]; 
NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
{ 


if (error) 
         { 
          //NSLog(@"Error,%@", [error localizedDescription]); 
         } 
         else 
         { 
          //This is where you send message to the watch 
         } 
}]; 
+0

它仍然沒有在第一次嘗試。關於這個問題可能有什麼其他建議?在iPhone端,我將所有的會話代碼放在appdelgate文件中運行,所以不應該存在應用程序不可用的問題。 –

+0

我正在使用AFNetworking,所以它已經是請求異步調用 –

+0

請發佈您的代碼。這應該肯定有效。 – Philip

相關問題