問題タブ [watchconnectivity]

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 投票する
2 に答える
557 参照

ios - WatchConnectivityは、iPhoneでタイマーを起動して時計のメッセージを送信します

iPhoneで動くタイマーアプリを作りました。iPhoneとWatchをコントロールできたらいいのに

プロジェクトのスクリーンショット

iPhone でのコントロール (再生、停止、再起動) は正常に機能し、私のメーターは Watch に表示されます。

ストップでの時計はうまく機能します。スタートに対しては機能しません。メーターはiPhoneまたは時計の電源を入れません。

工事も再開。

iPhone 上の My Label は、情報が Watch からのものである場合、変更に非常に時間がかかりますが、iPhone Watch に向かう逆の方向ではうまく機能します。

この問題に気付きましたか、これは WatchConnectivity に関連する問題です

ご協力いただきありがとうございます

以下は私のコードです:

ViewController.swift

InterfaceController.swift

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

ios - watchOS2 と iOS8 の接続 - Swift

watchOS1の場合、時計と電話の間でデータを共有するために利用できるいくつかの限定的ではあるが効率的な方法がありopenParentAppましAppGroupsNSUserDefaults

watchOS2WatchConnectivityフレームワークのリリースにより、openParentApp メソッドは廃止され、AppGroups読み取りNSUserDefaults専用機能に制限されました。ここで、WatchConnectivity はiOS9デバイスでのみサポートされていることに注意してください。

しかし、どういうわけか、AppStore のアプリが、展開ターゲットとしてiOS8を持ちながら、watchOS2用に最適化されていると主張しているのを目にします。

何か不足していますか?データを十分に共有するために利用できる他の方法はありますか?

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

ios - Core Data オブジェクトを「読み取り専用」の Apple Watch アプリに送信する

iOS アプリと連携する watchOS 2 アプリを開発しようとしています。iOS アプリは Core Data を利用し、Apple Watch アプリは単純に「読み取り専用」クライアントになり、iOS アプリからのデータを表示します。

2 つのデータ ストアの管理に関する記事をいくつか読んだことがありますが、それはやり過ぎのようです。起動時にウォッチアプリにデータを転送し、電話で状況が変化した場合はバックグラウンド転送を送信したいだけです。

私の質問は、最初にこの情報を時計アプリに送信するにはどうすればよいですか? 実際のデータ オブジェクトをウォッチ アプリに送信できるとは思いません。オブジェクトをディクショナリに変換し、関連するすべての情報を WatchConnectivity API 経由で送信する必要がありますか?

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

ios - 電話アプリを起動する前に Watch で iPhone から辞書を取得する - WC

iPhone アプリと WatchKit アプリを同期しようとしているときに問題が発生しました。問題は、私の WatchKit アプリtableViewに iPhone のデータ配列が追加されていることです。

Watch Connectivity フレームワークのインタラクティブ メッセージングを使用しています

セッションの確立

メッセージを WatchKit アプリに送信する

これがWatchでメッセージを受け取る方法です

1つの例外を除いてうまく機能します-iPhoneでアプリを起動するまでデータ配列を取得できません。これは私の場合の解決策ではありません。

実際の電話アプリを開かずにメッセージを転送および受信する方法についてのアイデアはありますか?

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

0 投票する
3 に答える
1207 参照

ios - Swift でのプロトコルの可用性の確認

WatchConnectivity を採用していますが、このライブラリが利用できない iOS7 と iOS 8 を引き続きサポートしています。さらに、プロトコル WCSessionDelegate もサポートされていませんが、この古いシステムを採用しています。ObjectiveC では、前処理ディレクティブを使用して、この宣言とプロトコルの採用をサポートしていないバージョンから保護していました。アプリが古いシステムでクラッシュしないように、Swift でそれを処理するにはどうすればよいですか?

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

ios - sendMessage による親 IOS アプリのウェイクアップが機能しない

私の目的は、次の手順でクロック キットの複雑さを更新することです。

  1. 合併症は、親 IOS アプリをウェイクアップするために、ExtensionDelegate を sendMessage から AppDelegate にトリガーします。

  2. iOS アプリがダウンロード / XML 解析データ

  3. AppDelegate は transferCurrentComplicationUserInfo を介して ExtensionDelegate にデータを転送します

  4. ExtensionDelegate は Complication Controller に渡されます

これはすべて、iOS アプリがフォアグラウンドで実行中またはアクティブな場合に機能します。アプリを起動していない場合は動作しません。

設定する必要がある設定はありますか? (バックグラウンド ダウンロード用に info.plist で既にセットアップされています) Swift でお願いします。

追加情報を追加しました:

上記のシナリオ (ExtensionDelegate を介した ComplicationControllor の定期的/スケジュールされた更新要求) では、WCSession sendMessage を介した IOS アプリの起動は機能しません。

Apple Watch でアプリを起動すると (InterfaceController が ViewDidLoad で ExtensionDelegate をトリガー)、親アプリを起動すると同じ問題が発生します。

どちらの場合も、メッセージは送信されていますが、フォアグラウンドでない場合、IOS アプリからの反応はありません。

上記の「自動化された」リクエスト シナリオで使用するものとまったく同じコードを使用して、ボタンも実装しました (テスト目的で手動でトリガーするため)。ウォッチでボタンを押すと、動作することがあります (ExtensionDelegate の同じ関数を介して ViewController が AppDelegate にメッセージを送信し、これが起動して応答します)。私はパターンを見つけることができません。

すべてのシナリオでメッセージが送信されているのとまったく同じ ExtenstionDelegate 関数を使用しているため、手動でトリガーされたときにのみ応答が受信され、親アプリのウェイクが成功する理由は理解できません。

ここでは、 ExtensionDelegateからのコード(ComplicationController、InterfaceController-ViewDidLoad、および上記のボタンによって呼び出されます。

および AppDelegate:

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

watchkit - interfaceControllerとGlanceの両方でメッセージを送信する方法は?

interfacecontrolleriPhone を呼び出し、最新のデータを受信して​​ Watch アプリの UI を更新する sendMessage メソッドを実装することができました。それはうまくいきます。ただし、同じ戦略: activiating sessionand sendMessagein myGlanceControllerではデータが返されません。オンラインで調べてみると、時計アプリがおそらくメッセージを傍受していることがわかりました。

で同じ機能を取得できるようにするための回避策はありGlancecontrollerますか?

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

ios - WatchConnectivity Context を使用したマルチウォッチ インターフェイス

再生/一時停止、停止、クリアで速度、距離、タイマーを表示する iPhone アプリケーション (ビュー付き) / Watch (インターフェース付き) を作成します。

以前は、WatchConnectivity アプリケーション コンテキスト データを (コンテキストの送信と受信) 間で共有していました。これまでのところすべてが機能していますが、別のページ/インターフェイスを追加して、iPhone でコンテキストを監視し、方法がまったくわかりません。

マイ インターフェイス ストーリーボード

セッション 2 インターフェイスをオンにすると、情報が失われます

これが私の現在のコードです。2番目のインターフェイスでラベル TimeLabel、distanceLabel ラベル、および速度の表示を切り替えたい

ご協力いただきありがとうございます

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

ios - WatchConnectivity が正しく動作しないのはなぜですか? (ビデオデモ)

ウォッチが非アクティブ化され、急速に再アクティブ化されると、WatchConnectivity は到達可能な状態の更新に失敗するようです (1 ~ 2 秒の時間間隔で下げたり上げたりします)。これは、私のデバイスで確実に発生します。

編集: これはバグのデモです: https://youtu.be/hx7VR8IPxT8

これは Open Radar レポート #23337218 です

バグの最も単純な例を得るために、テスト プロジェクトを作成しました。

そしてウォッチエクステンション

時計を下げるとどうなるか: デリゲートは sessionReachabilityDidChange を 1 ~ 2 秒で呼び出し、正しい状態を示します。

その後、sessionReachabilityDidChange の更新後に監視を開始すると、期待どおりにデリゲートが再度呼び出されます。

しかし、sessionReachabilityDidChange の更新前にウォッチを発生させると、デリゲートは 1 回だけ呼び出され、到達不能状態を反映し、ウォッチ アプリの正しいアクティブ状態を反映するために再度呼び出すことができません。

プロジェクトのダウンロードはこちらhttps://dl.dropboxusercontent.com/u/2649851/WatchConnectivityTest.zip

編集:これはシミュレーターでは問題ではないようです。