Я хотел бы загрузить некоторую информацию в интерфейсе WatchKit
из REST
backoffice. Есть ли какой-то быстрый способ выполнить запрос URL-адреса, переданный хостом iOS
, или я должен составить конкретный протокол, используя преимущества голой функции WatchConnectivity
?Подключение к внешнему URL из WatchKit 2.0
ответ
Я использую sendMessageData: replyHandler :, пока у меня есть проблемы в том, что работает правильно. Относительный билет на: https://stackoverflow.com/questions/33211760/sendmessagedata-does-not-call-didreceivemessagedata-on-the-counterpart
Вы должны использовать NSURLSession непосредственно из расширения WatchKit.
NSURLSession отлично работает с Watchkit, но вам нужно будет добавлять произвольные нагрузки на расширение Watchkit, если это необходимо.
Пожалуйста, смотрите этот пост,
NSURLSession returns data as Null on Watch OS2 using Objective-C
Хотя пример компании 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");
}
}];
Это довольно странно, поскольку у часов отсутствует сим-карта, и поэтому она не может подключиться к Интернету сама по себе, но, возможно, под Wifi-покрытием. Я ищу способ отправить URL-адрес как по Wi-Fi, так и по сотовой связи. Я рассматривал возможность использования WCSession.sendMessage с обработчиком, на котором основное приложение поместило бы результат после выполнения самого запроса URLS. Тем не менее, я не знаю, работает ли это, и основное приложение неактивно. –
В случае необходимости NSURLSession использует сотовый телефон – ccjensen