問題タブ [apple-watch-complication]

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 に答える
271 参照

xcode - Apple Watch のバックグラウンドで 1 日 1 回コードを実行する方法はありますか?

インターネットから取得した情報を表示するコンプリケーションを Watch アプリに追加したいと考えています。この情報は毎日変わります。

Watch アプリや iOS アプリを毎日開かずに、この情報を取得する方法を見つける必要があります。

iOS ではバックグラウンドでのコードの実行が実際には許可されていないことは知っていますが、ウォッチでコンプリケーションを実行するために基本的に必要なように思われるので、WatchOS では許可されているのでしょうか?

誰もこれを行う方法を知っていますか?

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

ios - ClockKit CLKComplicationDataSource に後方イベントがありません

コンプリケーションをサポートするテスト アプリを作成します

何らかの理由で、時計の文字盤は 1 ~ 2 回の過去のイベントしか表示していませんが、現在の日付より前の 10 ~ 15 個のイベントをログで確認できます。そして、前方イベントの空の配列を返すと、すべての後方イベントが時計の文字盤に表示され始めます。

これが私の機能です

PS「制限」パラメーターについて知っていますが、常に配列の数よりも大きくなります

PPS私の英語でごめんなさい:)

0 投票する
2 に答える
7789 参照

apple-watch - Apple Watchのコンプリケーションデータの更新の流れは?

コンプリケーションの設定方法を学ぶために、インターネット上の多くのチュートリアルに従ってきました。コンプリケーションを期待どおりにセットアップするのに問題はありません。

最初のタイムライン エントリが期限切れになるまで。12時間後、複雑さを維持するために更新する方法がわかりません. 以下に私が持っているすべてを共有します。誰かが私を埋めるのを手伝ってくれることを願っています.

ここでは、コンプリケーションに表示するデータの変数を作成します。

次の配列は、このデータのコンテナーです。

これにより、時計がロックされているときにコンプリケーションを表示できます。

これにより、コンプリケーションでタイム トラベルを進めることができます。

ここでは、タイムラインの開始時刻を現在と等しくなるように設定します。

ここでは、タイムラインの終了時間を今から 12 時間後に設定します。

ここで、コンプリケーションのテンプレートを作成します。これは、ユーザーがウォッチですべてのコンプリケーションを参照しているときに、私のコンプリケーションが表示されたときにサンプル データを表示するためです。

これにより、コンプリケーションの最初のタイムライン エントリが作成されます。コンプリケーションが有効になるとすぐに、このコードが実行され、それに応じてコンプリケーションがすぐに入力されます。

これは、現在持っているすべてのデータのタイムライン エントリを作成する場所です。

これにより、コンプリケーション データをいつ更新するかが時計に通知されます。

これは私が問題に直面しているところです。

新しいデータを作成してタイムラインをリロードするにはどうすればよいですか? 流れは?タイムラインを延長しようとしているのではなく、完全に置き換えようとしています。私は完全に途方に暮れています。この点に関しては、Appleのドキュメントはかなりあいまいです。次のメソッドを実装する必要があることはわかっていますが、方法がわかりません。誰かがこのコードを記入するのを手伝ってくれますか?

アップデート:

El Teaのおかげで、うまくいきました。CLKComplicationServer のインスタンスを requestedUpdateDidBegin に追加し、内部に reloadTimeline メソッドを配置する必要があります。

更新されたコードは次のとおりです。

0 投票する
2 に答える
1805 参照

apple-watch - IOSデータを使用したWatchOS2 ClockKitの複雑化の更新

IOS / iPhone から WatchConnectivity 経由で転送されたデータを使用して、watchOS2 クロックキット コンプリケーションを更新しようとしています。

かなりの研究にもかかわらず、これまでのところ成功していません。他の投稿で同様の課題が説明されていることがわかりました(まだ解決策はありません)

3つの問題に直面しています:

1) ComplicationController からの sendMessage は、IOS 親アプリを起動していないようです (InterfaceController から送信された同じ sendMessage は、IOS 親アプリを起動します)。

2)値が ComplicationController に転送された場合でも(sendUserInfoToComplication を介して、IOS アプリがフォアグラウンドにある場合)、合併症に表示される値が更新されることがあります(時々更新される/更新されない理由のパターンが見つかりませんでした)

3) "getNextRequestUpdate.." を 2 分に設定しました (テスト用)。しかし、これは何の違いもないようです。(シミュレーターでも任意のタイミングで発動するが、「予算」は活用されていない / 検証するためにストッパーを設定した)

私はIOS / Swiftプログラミングに比較的慣れていないことに注意してください。しかし、他の質問/投稿に基づいて、これに苦労しているのは私だけではないようです.

サンプルコードは次のとおりです。

ComplicationController :

ビューコントローラー:

また、シミュレーターを実行すると、次のようなメッセージが多数表示されます。

0 投票する
2 に答える
720 参照

watchkit - WatchKit: アプリがグランス/コンプリケーションから起動されたかどうかを検出する

ユーザーがアプリのグランスまたはコンプリケーションをタップして Apple Watch アプリを起動したかどうかを検出する方法はありますか?

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

ios - 実行していないときに WatchKit コンプリケーションを最新の状態に保つ

アプリの WatchKit 拡張機能に取り組んでいますが、複雑な問題がいくつかあります。

ユーザーがiOSアプリで何をしているかに応じて、特定の合計金額を表示する複雑さがあります。WatchKit 拡張機能が実行されている場合、iOS アプリは-[WCSession updateApplicationContext:]メソッドを使用してウォッチ アプリのコンテキストを更新します。正常に動作するので、Watch アプリの ExtensionDelegate で、新しいデータを使用して複雑さを手動で更新します。

ただし、これは拡張機能が実行されている場合にのみ問題ありません (実行されていない場合は、次の起動までアプリケーション コンテキストを取得できません)。

そのため、コードを編集して、ユーザーが iOS アプリで何かを変更したときに、-[WCSession transferCurrentComplicationUserInfo:]メソッドを使用して複雑なデータを Watch に直接送信するようにしました (バックグラウンドでユーザー情報を受け取るには、ExtensionDelegate を起動する必要があることがドキュメントに書かれています)。

ExtensionDelegateのメソッドを実装して-session:didReceiveUserInfo:、iOS アプリからデータを受信したときに合併症を更新しましたが、拡張機能が実行されていないときは機能しません... (ユーザーを受信したかどうかはわかりません)ログに記録できないので情報)

拡張機能が実行されていない場合でも、合併症を最新の状態に保つにはどうすればよいですか??

ありがとう

PS: Watch Simulator を使用しています。拡張機能を「閉じる」には、Watch を再起動します (ハードウェア メニューから)。

編集: アプリが実行されていないときにステートメントをログアウトすることができました (Watch Simulator システム ログを開くことによって)。iOS が新しい複雑なユーザー データをウォッチ拡張機能に送信すると、次の行が表示されます。

10 月 18 日 18:08:11 pc16 WatchApp 拡張機能 [26615]: 拡張機能は、合併症のサポートのためにウェイクアップする要求を受け取りました。

10 月 18 日 18:08:11 pc16 assertiond[26585]: アサーションが失敗しました: 15A284 13S343: assertiond + 15398 [B48FCADB-A071-3A46-878B-538DC0AFF60B]: 0x1

そのため、時計はユーザー情報辞書をうまく受け取りますが、拡張機能の起動に失敗しているようです...

編集 2 : これは、複雑なユーザー情報を受け取る必要がある ExtensionDelegate のコードの一部です (ただし、アプリが実行されていないときは呼び出されません)。

編集 3 : WCSession は拡張デリゲートapplicationDidFinishLaunchingメソッドで設定されます。

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

apple-watch - iPhone アプリから直接コンプリケーションをアップデートする方法はありますか?

可能であれば、ユーザーが時計アプリを完全にバイパスできるようにしたいと思います。

のインスタンスを作成するために、ViewController に ClockKit をインポートしようとしましたCLKComplicationServer。「そのようなモジュールはありません」というエラーが表示されます。

iOS アプリからコンプリケーションと直接通信する方法はありますか?

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

swift - CLKComplicationDataSource で 2 つの合併症のデータを定義する方法

それで、私は ClockKit Complications の初心者で、2 つの Complications のプレースホルダー テンプレートを作成する方法を知りたいです。

これまでの私のコード:

誰でも助けることができますか?