2

AppleTV の TVML 内からローカルのアセット カタログに含まれる画像にアクセスする方法はありますか?

Appleのこの例のテンプレートのいくつかは、resource://一般的に使用される画像である URL を呼び出していることに気付きました (開発フォームに関する詳細情報)。雲のシンボルでレンダリングされるボタンの例を次に示します。

<buttonLockup>
  <badge src="resource://button-cloud" class="whiteBadge" />
  <title>Title 3</title>
</buttonLockup>

TVML クラウド ボタン

代わりに自分のリソースのいくつかを指摘しようとしましbutton-cloudたが、成功しませんでした。

次のように、外部から提供された画像にリンクすることで、これらのボタンのアイコンを変更できました。

<buttonLockup>
  <badge src="http://localhost:5000/static/heartFull.png" class="whiteBadge" width="50" height="50"/>
  <title>Title 3</title>
</buttonLockup>

これらのボタンはアプリ全体で再利用されるため、可能であれば HTTP 経由で繰り返し呼び出すよりも、ローカルでロードしたいと考えています。

4

3 に答える 3

0

ありがとう@Baa、本当に助けてくれました!JS 側でバンドルへのパスを参照するためにそれを追加したかっただけで、次の Swift コードをappController(_ appController: TVApplicationController, evaluateAppJavaScriptIn jsContext: JSContext)関数内の AppDelegate.swift ファイルに追加する必要がありました (表示されない場合は、手動で追加する必要がある場合があります)。それ):

jsContext.setObject(Bundle.main.bundleURL.absoluteString, forKeyedSubscript: "BUNDLE_URL" as NSCopying & NSObjectProtocol)

次に、JS 側では、次のようにバンドルから静的イメージをロードできます。

const imageFromBundle = `${BUNDLE_URL}myImageName.png`;

私が見る限り、file:///接頭辞は不要であり、バンドルされた画像の読み込みはそれなしでうまくいきました.

于 2020-05-08T14:38:00.697 に答える