問題タブ [clockkit]

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

watchkit - カスタム背景画像とコンプリケーションを同時に使用して ClockKit を使用できますか?

カスタム イメージ (WWCD'15 基調講演中に示されているように) を含むウォッチ フェイスを使用し、同時にコンプリケーションを表示したいと考えています。これどうやってするの?

ClockKit ドキュメントを調べましたが、これを行う方法が見つかりませんでした。

更新:watchOS 2カスタム イメージのウォッチフェイスを提供しているようです。ただし、このウォッチフェイスではコンプリケーションを追加することはできません。

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

objective-c - Objective C を使用して getPlaceholderTemplateForComplication を設定するにはどうすればよいですか?

ここのこのチュートリアルは優れています

http://www.sneakycrab.com/blog/2015/6/10/writing-your-own-watchkit-complications

これは、fillFraction、ringStyle、およびtextProviderを設定する必要があることを示していますが、目的のcで何をする必要があるかをドキュメントから飛び出してはいません。考えられる多くの組み合わせを試しました。新しいwatchOS複雑化テンプレートでボイラープレートコードを完成させることについて、私の理解を助けることができる人はいますか?

iOS アプリからのアップデートで、小さな円形の複雑化をテストしたいと考えています。

私が迅速にオールインする前に、誰かが私の理解を助けてくれますか?

どうもありがとうニック

@mipadi との簡単なチャットの後に更新します :-) と微調整。

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

swift - CLKRelativeDateTextProvider からテキストを抽出できますか?

私は合併症のセットを構築しており、textProvider が 1 つしかない CLKComplicationTemplateUtilitarianLargeFlat に到達しました。

相対日付とともにテキストを表示したい。だから私はこれをやってみました:

しかし、私が得るのは次のとおりです。

生のテキストを CLKRelativeDateTextProvider から抽出するか、何らかの方法で CLKSimpleTextProvider と組み合わせることができますか?

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

ios - watchOS 2 の合併症を強制的にリロードする

コンプリケーションの動作に問題があります。確実に更新できれば助かります。

したがって、強制押しメニューボタンを次のメソッドにリンクしました

残念ながら、これはアプリのクラッシュにつながります。とfatal error: unexpectedly found nil while unwrapping an Optional value

通話reloadTimelineForComplication(complication)には予算があることは理解していますが、最初から機能しないため、ここで問題になることはありません。

現在watchOS2 + Xcode 7 GMを使用しています

アプリの実行中にコンプリケーションを更新するためのアイデアをいただければ幸いです。

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

ios - ウォッチ コンプリケーションのデータを入手する場所と時期

数日間複雑な作業を行った後、所定の間隔で発生する更新の更新プロセスについて、次のように自信を持って言えます。

  • システムコールrequestedUpdateDidBegin()
    • ここで、データが変更されたかどうかを判断できます。そうでない場合、アプリは何もする必要はありません。データが変更された場合は、次のいずれかを呼び出す必要があります。
      • reloadTimelineForComplicationすべてのデータをリセットする必要がある場合。
      • extendTimelineForComplicationコンプリケーション タイムラインの最後に新しいアイテムを追加するだけでよい場合。
    • 注: 1 日のコンプリケーションの時間予算を使いすぎた場合は、requestedUpdateBudgetExhausted()代わりにシステムが実際に呼び出すことがあります。requestedUpdateDidBegin()これがこの質問の理由です。
  • を呼び出した場合reloadTimelineForComplication、システムはgetCurrentTimelineEntryForComplication(時間旅行の設定に応じて、配列を取得する未来および過去のバリアントと共に)を呼び出します。
  • まだテストしていないため、これは推測ですが、それを呼び出すとextendTimelineForComplication、 のみが呼び出されると思いますgetTimelineEntriesForComplication(... afterDate date: NSDate ...)
  • その後、システムが呼び出さgetNextRequestedUpdateDateWithHandlerれるので、コンプリケーションが新しいアップデートを必要とするまでの時間を指定できます。

Apple のドキュメントでは、頻繁に更新を要求したり、コンプリケーション コードで処理を実行しすぎたりしないでください。そうしないと、時間予算が使い果たされ、コンプリケーションの更新が停止します。それで、私の質問は次のとおりです。いつ、どこで更新を行いますか?

コンテキストとして、私のシナリオは、1 時間に最大 2 回変化する戻りデータを含む URL です。

URL 取得コードを配置する最も明白な場所はfunc requestedUpdateDidBegin()、データを取得して保存し、変更がない場合は単に戻ることです。変更があった場合は、タイムラインを延長またはリロードします。

ただし、URL フェッチにはコストがかかる場合があります。代替案:

  • コードを電話アプリに入れ、 を付けて送信しWCSessionますが、ユーザーがそのアプリを閉じると、更新は行われなくなります。
  • プッシュ アップデートを使用しますが、これは Web アプリではないため、送信元がありません。
  • 明らかに、ユーザーが時計アプリを操作するときにすべてのデータを更新しますが、これは、ユーザーがアプリを使用するときにのみ更新されることを意味し、複雑さの必要性を否定します.

他の場所はありますか?コンプリケーションに含まれていない時計アプリの定期的な機能を使用できますか? 合併症の更新のためにデータを取得する適切な場所はどこですか?

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

ios - transferCurrentComplicationUserInfo および ComplicationController

表示されるデータを更新する一環として、コンプリケーションにデータを送信しようとしていdidReceiveRemoteNotificationますが、これとコンプリケーション自体との関係をセットアップする方法に関する Apple からのドキュメントはほとんどないようです。

ComplicationControllerが作成されたら、も作成WCSessionしてデリゲート呼び出しのリッスンを開始する必要がありますか? 私はそれを配置することができました.getPlaceholderTemplateForComplicationこれは、iOSアプリケーションが実行されているときは機能するようですが、アプリが強制終了された(または実行されなくなった)ときは機能しません.

iOS アプリが実行されているかどうかにかかわらず、リモートの JSON プッシュ通知の一部として時計にデータを取得するための優れたガイドがあるかどうか知りたいです。

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 :

ビューコントローラー:

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