問題タブ [wcsession]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
243 参照

apple-watch - Apple Watch で NSNotifications を使用して WCSession メッセージを配信する

私は Kugel を使用して NSNotifications を使用しており、ウォッチ シミュレーターと iPhone および iPhone シミュレーターの両方でうまく機能しており、UI/状態を更新するメッセージを配信していますが、これらはデバイスでテストするときにウォッチ側で配信できません。

私が信じている問題は、iPhone からの WCSession メッセージに基づいて NSNotifications がトリガーされることです。シミュレーターと iPhone 側ですべてが正常に動作するのは、おそらく、sim が監視アプリを常にアクティブに保ち、iPhone が完全なセッションをサポートしているため、接続と通知が常に配信されるためです。ウォッチでは、ウォッチの状態に基づいて、セッションとおそらく通知の両方が失敗する可能性があります。

時計でのデバッグは非常に遅いです。デバッグ プロセスを開始するだけで 5 ~ 10 分かかります。

電話メッセージが時計で受信され、メッセージに基づいて更新する必要があることを時計アプリに通知するための最良の方法について、誰かが私にいくつかの読書を指摘できますか? それとも、後で確認できる WCSession および NSNotification 情報を記録できる優れたデバッグ コードでしょうか?

私のコードはかなり単純ですが、まだ進行中の作業です....

両側で、セッションを管理するシングルトンを作成します。電話側のコードは次のとおりです。

そしてこれは時計側です:

iPhone 側の AppDelegate と時計側の ExtensionDelegate にシングルトンを作成します。電話側は次のとおりです。

メッセージを送信するときの基本的なロジックは、相手側が到達可能かどうか、到達可能である場合は sendMessage が使用され、到達可能でない場合は sendApplicationContext が使用されることです。

電話側でメッセージが受信されると、アプリがフォアグラウンドにあるかバックグラウンドにあるかを確認する追加のロジックがあり、フォアグラウンドの場合はメイン スレッドに通知をプッシュし、バックグラウンドの場合は情報だけが更新されます。私の理解では、メッセージはバックグラウンドで受信されないため、時計側では常にメインスレッドにプッシュされます。

0 投票する
0 に答える
86 参照

watchos-2 - 間違った WCSessionDelegate コールバック関数が呼び出されました

私は WCSession.defaultSession().sendMessage 関数を使用して、時計から iPhone にメッセージを送信します。

アイフォンで、

が呼び出され、呼び出されるべきコールバックではありません:

したがって、replyHandlerを呼び出すことはできません:-(

理由はありますか?どうもありがとう!

編集:呼び出しに使用されるコード:

0 投票する
1 に答える
287 参照

size - watchconnectivity で送信できる辞書の最大サイズはどれくらいですか

os2 を監視するために iPhone 経由で .5 MB サイズの辞書を送信していましたが、メッセージの返信が毎回失敗しました。watchos1 では正常に動作しています。そのディクショナリには 700 個のオブジェクトがあります。助けてください。

0 投票する
1 に答える
458 参照

ios - WatchKit アプリとの一貫性のない動作 - Swift

時計と通信する iOS アプリを作成しようとしていますが、通信が遅すぎるか、データがまったく転送されないなど、常に一貫性のない動作が発生します。

その上、watchKit の実行時に「Phone disabled」画面が表示されません (最初に電話からデータを取得する必要があるため、クラッシュが発生します)。

これは、iPhoneアプリでWCSessionを確立することに関して私が持っているものです

アプリ デリゲート

MainViewController (viewDidLoad)

MainViewController (iOSアプリからwatchKitアプリへ大量のデータを転送するメソッド)

そして、これはwatchKitアプリ用です

アプリ デリゲート

InterfaceController (awakeWithContext)

ApplicationContext データの受け取り方法

状況を一掃するためのアドバイスは大歓迎です!

ありがとうございました。

0 投票する
1 に答える
207 参照

watchkit - WCSession didReceiveMessage を使用して異なるメッセージを受信する方法は?

さまざまなボタンからさまざまなメッセージを送信する必要があります。didReceiveMessageそれらをすべて受け取るにはどうすればよいですか?