サンプルウォッチキットアプリ(Apple Watch + iPhone)で作業しています。ここで私のアプリはうまく同期しています。また、私はWCSessionのデータ転送(iPhoneからApple Watchへ)を使って作業しました。両方がアクティブな状態になっていれば正常に動作しています。しかし、それが非アクティブ状態(バックグラウンド状態、スリープモードまたはフォアグラウンド状態)である場合、私はApplewatchにデータを転送できませんでした。デリゲートメソッドは呼び出さない。AppleWatchをバックグラウンドステートまたはスリープモードで使用しているときに、iPhoneからAppleWatchにメッセージを送信するにはどうすればよいですか?
- (void)applicationDidBecomeActive {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
}
ここは私の委任方法です。
- (void)session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary<NSString *,id> *)message replyHandler:(nonnull void (^)(NSDictionary<NSString *,id> * __nonnull))replyHandler {}
私を助けてください。
iWatchはそのように動作することとします。 iPhoneが直ちに開くことを期待してはいけませんが、ユーザーがインターフェースの1つと対話している間だけ実行されるため、逆になります。いくつかの例外がありますが、それらの例外はiPhoneから目を覚ますものではありません。 iWatchとやりとりしたり、アプリの機能を微調整したりするには、別の方法が必要です。 – Tushar