2

電話からの応答を受け取ったときに、インターフェースコントローラーがフォアグラウンドにあることを確認するために、インターフェースコントローラーをチェックしたいと考えています。そうである場合は、触覚を実行して、作業が完了したことをユーザーに知らせます。

sendMessage:replyHandler:電話との通信に使用しているものですが、戻るまでに時間がかかる場合があります。はInterfaceControllerになるように設定されていますWCSessionDelegate。ユーザーが完了する前に手首を下げることができるほど長い時間がかかる場合があります。その場合、ハプティックが発火しないようにトラップしたい。現時点では、ハプティックはキューに入れられ、将来のランダムな時間に再生される可能性がありますが、これは役に立ちません.

通知を送信するように設定しましたが、ウォッチにアプリが表示されていない場合にのみ表示されます。したがって、触覚を再生しようとする前に、コントローラーが画面上にあることを確認する必要があるのはなぜですか。

4

2 に答える 2

0

まずは iOS コードの改善を検討することを考えます。そうすれば、返信を返すのにそれほど時間がかかりません。

ただし、応答メッセージに現在の日付を含めることができます。その後、応答ハンドラーに、ハプティックを再生する直前に応答があったかどうかを確認させます。これにより、アプリが次にアクティブになったときに応答が処理された場合、将来再生されなくなります。

ちなみに、応答ハンドラを実行しているため、インターフェイス コントローラ画面上に表示されます。

于 2016-04-20T20:17:34.117 に答える
-1

私が提案する手順。

  1. sendMessage:replyHandler:Watch から Task リクエストを送信して、長時間実行されるタスクを実行するよう電話に依頼します。
  2. この Call を使用して監視し、BOOL を作成します。shouldUpdatePhone = YES
  3. ここで、タスクが実行中で、Watch が InActive になっていると考えてください。その場合、Flag ( shouldUpdatePhone) は YES なので、もう一度すぐに呼び出して、Screen が現在 inActive であることを iPhone に伝えます。
  4. その時間の後に長時間実行されているタスクが完了すると、Watch が現在非アクティブであるという情報が得られ、Haptic の応答信号を回避できます。
于 2016-04-21T06:18:09.903 に答える