問題タブ [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.
swift - CLKComplicationDataSource で 2 つの合併症のデータを定義する方法
それで、私は ClockKit Complications の初心者で、2 つの Complications のプレースホルダー テンプレートを作成する方法を知りたいです。
これまでの私のコード:
誰でも助けることができますか?
ios - complicationController からの sendMessage で iOS 親アプリを起動する方法
ウォッチキット拡張機能からメッセージを送信して、iOS 親アプリを起動しようとしています。
これは、以下の sendMessage 関数が watchApp / ViewController から呼び出された場合にのみ機能します。ComplicationController から呼び出されるとメッセージが送信されますが、iOS の親アプリが起動するようになりました。
アドバイスをいただければ幸いです。(Swiftのコード参照をお願いします)
ここに簡略化されたコード:
AppDelegate と ExtensionDelegate では:
ExtensionDelegate の場合: (ここでは問題ありません。メッセージは正常に送信されます)
AppDelegate の場合: (iOS アプリが実行されていない/フォアグラウンドでない場合は受信されません)
これは、Complication Controller から関数が呼び出される方法です (メッセージは送信されますが、親アプリは起動されません)。
prediction - 将来の値を予測し、時間に依存するデータを表示する Apple Watch コンプリケーションを作成する
WatchOS 2 用の Apple Watch コンプリケーションを作成中です。表示しようとしている特定のデータは、3 ~ 6 分の間隔で (Web リクエストを介して) 提供されます。データ値がどのようになるかを予測できる予測アルゴリズムがあります。これは私に問題を提示します。
タイムトラベルで予測アルゴリズムが提供するデータを表示したいので、getTimelineEntriesForComplication (特定の日付以降のデータを要求するバージョン) を使用して、タイムラインに忠実であるとアルゴリズムが信じる将来の値を提供したいと考えています。 . ただし、時間が進むと (よくあることですが)、これらの予測データ ポイントのいずれかが発生するように設定された時間に達すると、予測値は正確ではなくなります。
たとえば、午後 12 時で、現在 A の (正確な) データ値があるとします。予測アルゴリズムは、次の 2 時間の次のデータ値を予測する可能性があります。
- 午後 12 時 30 分 | B
- 午後 1 時 | C
- 午後 1 時 30 分 | D
- 午後 2 時 | え
ただし、実際に午後 12 時 30 分になると、実際のデータ値は F になる可能性があります。さらに、アルゴリズムは、午後 2 時 30 分まで新しい予測セットを生成します。updateTimelineForComplication
タイムラインを再構築する必要があることを示すために使用できることは理解していますが、この方法には 2 つの問題があります。
- 実行時間の制限をすぐに超えてしまうのではないかと心配しています
updateTimelineForComplication
タイムライン全体をフラッシュします。これは、過去のすべてのデータが完全に有効であることを考えると無駄に思えます。次の 4 つほどの値を更新する必要があるだけです。
この問題を処理するより良い方法はありますか?
watchkit - WatchOS2、ClockKit、CLKRelativeDateTextProvider が途中で切り捨てられる
次のスニペットを使用して、モジュラー ラージ コンプリケーションの相対時間を表示しています。
通常 (常にではありませんが)、相対時間は最初は正しく表示されます。たとえば、次のようになります。
...しかし、すぐに、下のスクリーンショットに示すように更新が表示されます。
示されているように、省略記号で途中で切り捨てられ、常に時間単位の最初の文字 (M.. は分、H.. は時間) の後にあります。
body2 行は、オーバーフローしたい場合に備えて空です (完全に確認するために、nil と @"" に設定してみました)。
この問題はシミュレーター (38mm と 42mm) と実際の 38mm ウォッチで発生します。
これがwatchos2のバグである場合、私はそれが明らかになり、今までに修正されることを期待しています.
他の誰かがこれを見ているか、解決策を知っていますか?
ありがとう。
ios - カスタム ClockKit Complications コントローラーを接続してデバッグする方法は?
カスタムの ClockKit Complication を動作させようとしています。
- に準拠したカスタムComplicationController
CLKComplicationDataSource
を作成しました。として Watch 拡張機能の plist に追加されCLKComplicationPrincipalClass
ます。
時計でコンプリケーションを選択して有効にできますが、実際のプレースホルダーではなく「---------------」しか表示されません。
私が試したこと
override init(){…}
ComplicationController にカスタムを追加し、デバッグ用にブレーク ポイントを配置しました。しかし、Complicationビルド スキームを実行している場合でも、このブレーク ポイントに到達することはありません。私のカスタム ComplicationController はインスタンス化されていないようです。ログ メッセージは表示されます
Extension received request to wake up for complication support.
が、これがコードのどこでトリガーされているかが明確ではありません。InterfaceController
また、アクティブな合併症について調べるために、メインから次の呼び出しを試みました…しかし、
server
nil を返します。アクティブでリロードされている合併症はありません。
質問
カスタム ComplicationController を正常に接続するにはどうすればよいですか?
また、デバッグに関する追加のヒントも歓迎します。
通常、ウォッチ シミュレーターまたは iPhone のウォッチ アプリからコンプリケーションを削除するだけで十分ですか、それとも、コンプリケーション関連の更新が有効であることを確認するには、ウォッチ アプリ全体を再インストールする必要がありますか? また、カスタム ComplicationController 内で何かをログに記録する場合、Complications ビルド スキームまたは通常の Watch アプリ ビルド スキームで実行している場合にのみ、その出力を表示する必要がありますか?
問題を見つけるためのアイデアは大歓迎です。