Вы можете вызвать openParentApplication:reply:
метод в часы контроллера для отправки запросов в том, что приложение и получить ответ.
Когда вы вызываете метод openParentApplication:reply:
, iOS запускает или запускает содержащее приложение iOS в фоновом режиме и вызывает метод делегата приложения application:handleWatchKitExtensionRequest:reply:
. Делегат приложения выполняет запрос, используя предоставленный словарь, а затем возвращает ответ на расширение WatchKit. Вы можете прочитать дополнительную информацию here.
В AppDelegate
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply {
let state = UIApplication.applicationState
let replyDict = ["appState" : state]
reply(replyDict)
}
В WatchController
WKInterfaceController.openParentApplication(dictionary) {
(replyDict, error) -> Void in
//You will get the replyDict here, which contains application state.
}
Надеется, что это помог.
круто спасибо! Я задал вопрос, откуда возникает переменная «ошибка» в методе openParentApplication? Это не передается блоком handleWatchKitExtensionRequest, поэтому мне интересно, как это происходит. –
«error» - это объект NSError, указывающий, возникла ли проблема или нет, если не было ошибок. Я понял, когда сторожевой таймер не может открыть родительское приложение, он получает NSError. Я не могу найти подробностей. – cheeseRoot