2015-10-10 3 views
0

Я хотел бы загрузить некоторую информацию в интерфейсе WatchKit из REST backoffice. Есть ли какой-то быстрый способ выполнить запрос URL-адреса, переданный хостом iOS, или я должен составить конкретный протокол, используя преимущества голой функции WatchConnectivity?Подключение к внешнему URL из WatchKit 2.0

ответ

0

Вы должны использовать NSURLSession непосредственно из расширения WatchKit.

+0

Это довольно странно, поскольку у часов отсутствует сим-карта, и поэтому она не может подключиться к Интернету сама по себе, но, возможно, под Wifi-покрытием. Я ищу способ отправить URL-адрес как по Wi-Fi, так и по сотовой связи. Я рассматривал возможность использования WCSession.sendMessage с обработчиком, на котором основное приложение поместило бы результат после выполнения самого запроса URLS. Тем не менее, я не знаю, работает ли это, и основное приложение неактивно. –

+0

В случае необходимости NSURLSession использует сотовый телефон – ccjensen

0

Хотя пример компании Apple в скор см https://developer.apple.com/videos/play/wwdc2015-228/?time=345, я вставил фрагмент в obejctive-с utlisin обертки NSProcessInfo.

В примере с Apple также используется Семафор, если расширение должно быть усыновлено, которое я пропустил снизу.

Следуя приведенному ниже рисунку, вы можете получить нужную услугу непосредственно с часов.

NSProcessInfo *processInfo = [NSProcessInfo processInfo]; 

[processInfo performExpiringActivityWithReason:@"networkReq" usingBlock:^(BOOL expired) { 
    if (!expired){    
     NSLog(@"we have an assertion");   
     NSTimeInterval secondsInThreeHours = 3 * 60 * 60; 
     NSURL *forecast = [NSURL URLWithString:@"http::address"]; 

     NSURLSession *session = [NSURLSession sharedSession]; 
     [[session dataTaskWithURL:forecast 
       completionHandler:^(NSData *data, 
            NSURLResponse *response, 
            NSError *error) { 
        // handle response 
     }] resume]; 
    else{ 

     NSLog(@"Not background assertion or we are out of time"); 
    } 
}];