我想在WatchKit
后台的REST
界面中加载一些信息。是否有一些快速的方法来执行主机iOS
应用程序传递的URL请求,或者我必须利用裸WatchConnectivity
功能来编写特定协议?
答案 0 :(得分:0)
您应该直接从WatchKit扩展程序使用NSURLSession。
答案 1 :(得分:0)
NSURLSession适用于Watchkit,但如果相关,你还需要在Watchkit扩展上添加允许任意负载。
请看这篇文章,
NSURLSession returns data as Null on Watch OS2 using Objective-C
答案 2 :(得分:0)
我正在使用sendMessageData:replyHandler:,但是我在使用它时遇到了问题。相关票证位于: https://stackoverflow.com/questions/33211760/sendmessagedata-does-not-call-didreceivemessagedata-on-the-counterpart
答案 3 :(得分:0)
尽管Apple的例子很快见https://developer.apple.com/videos/play/wwdc2015-228/?time=345,但我在NSProcessInfo包装器中贴了一个obejctive-c utlis的片段。
Apple的例子也使用了Semaphore,如果扩展名被置于睡眠状态,我已从下面省略了。
按照以下模式,您可以直接从手表中点击所需的服务。
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");
}
}];