問題タブ [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 に答える
2803 参照

ios - 既存の Xcode プロジェクトに複雑さを追加するにはどうすればよいですか?

既存のXcode 7 プロジェクトに合併症を追加するにはどうすればよいですか?

WWDC ビデオ 2015 セッション 209 を見ると、コンプリケーションを追加する方法として、新しいプロジェクトを作成し、 [コンプリケーションを含める] をクリックする方法が示されています。その場合はこれでうまくいきますが、どうすればそれらを既存のプロジェクトに追加できますか?

ここに画像の説明を入力

XCode オブジェクト セレクターにコンプリケーション コントローラーが見つかりません (以下を参照)。

ここに画像の説明を入力

なぜこうなった??

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

objective-c - iOS の openParentApplication 呼び出しで親アプリケーションが開かない

iPhoneの親アプリを開く方法を知る必要があります。バージョン 1.0.1の時計があり、親アプリには8.4 iOSがあります。

これは私のコードですAppDelegate

そして、これは私が情報に返信する方法です:

しかし、親アプリが開きません。

私の間違いは何ですか!助けてください

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

ios - watchkitapp が時間内にシーンを更新できませんでした

ウォッチキット拡張には、テーブルビューに項目を表示するメソッドがあります。約 500 以上のアイテムがあり、メモリが 2.9 MB から 7.8 MB に増加し、watch アプリがクラッシュします。方法は次のとおりです。

さらにデバイス ログに、「watchkitapp は時間内にシーンを更新できませんでした」というメッセージが表示されます。

このクラッシュを修正するにはどうすればよいですか? 原因はメモリか、またはウォッチ テーブルビューで 500 アイテムをロードするための長い待機時間ですか?

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

swift - WatchKit 2 コンプリケーションのテキストがプレビューにしか表示されない

シンプルなテキストプロバイダーから「こんにちは」と言う2用の非常にシンプルな複雑さを開発しようとしています。

私はいくつかの奇妙な動作を達成することができました。コンプリケーションをクリックしたとき、またはウォッチフェイスのカスタマイズ画面からプレビューしているときはテキストが表示されますが、ウォッチフェイスが表示されているときは表示されません。見てください:

ウォッチフェイスの動作がおかしい gif

これを引き起こしている可能性のあるアイデアはありますか?

私のテキストプロバイダーは次のようになります

そして、私の取得getPlaceholderTemplateForComplicationは次のようになります

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

ios - iPhone からのデータを使用したコンプリケーション タイムラインの更新

WCSession を使用して iPhone (iOS 9 GM) から取得した値を表示する、watchOS 2 GM の複雑さを書き込もうとしています。

残念ながら、メッセージを送信するときに次のエラーが表示されます。

これは、私のコードが ComplicationController.swift でどのように見えるかです:

これは私の ExtensionDelegate.swift です:

そして最後に私の iOS AppDelegate:

何か案は?

前もって感謝します!

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 アプリではないため、送信元がありません。
  • 明らかに、ユーザーが時計アプリを操作するときにすべてのデータを更新しますが、これは、ユーザーがアプリを使用するときにのみ更新されることを意味し、複雑さの必要性を否定します.

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