0

非常に短い質問があります。一部の人にとっては些細なことかもしれませんが、TVML のドキュメントには何も見つかりませんでした。また、私は通常デザイナーなので、コードを扱う必要はあまりありません。

productBundleTemplate を使用して、アプリのメイン ページを作成しました。次に例を示します。

> <section>
>         <lockup>
>           <img src="${this.BASEURL}resources/test.jpg" width="332" height="500" />
>           <title class="showTextOnHighlight"></title>
>           <overlay>
>             <progressBar value="0.1" />
>           </overlay>
>           <relatedContent>
>             <infoTable>
>               <header>
>                 <title>Test</title>
>               </header>
>               <info>
>                 <header>
>                   <title></title>
>                 </header>
>                 <description allowsZooming="true">This is great</description>
>               </info>
>             </infoTable>
>           </relatedContent>
>         </lockup>

この商品を別の商品ページにリンクしたいと思います。そのためにどのコードを使用する必要がありますか?

最後の質問は、ボタンを他のコンテンツにリンクするにはどうすればよいかということです。同じようになると思いますが、念のために言っておきます。TVML のドキュメントに何らかのリファレンスがあるはずですが、見つかりませんでした。どんな助けでも大歓迎です。

前もってありがとう、エリック

4

4 に答える 4

0

私は助けることができると思います。必要なのは、ページからロードしたい新しい製品ページへの参照が必要なことです。例: < lockup template= http://...url to your template here...>

      <img src="${this.BASEURL}resources/test.jpg" width="332" height="500" />
      <title class="showTextOnHighlight"></title>
      <overlay>

presenter.jsファイル (持っているはずです) には、画像が選択されたときにこのテンプレートをロードする関数が必要です。

最後に、main.js または application.js (名前は何でも) で、イベントリスナーをドキュメントに追加する必要があります。これにより、ファイルがロードされます。

今言ったことすべてが意味不明に聞こえる場合は、apple のサンプル tvml プロジェクトをチェックしてダウンロードしてください。テンプレートをナビゲートする方法の基本を示すのに役立ちます。 https://developer.apple.com/library/prerelease/tvos/samplecode/TVMLCatalog/Introduction/Intro.html これが芽に役立つことを願っています。

于 2015-11-10T04:08:14.980 に答える
0

TVML アプリでこれを行うには、少しの JavaScript と少しの TVML が必要です。

Apple の TVML リファレンスの動的ページ コンテンツの作成ガイド ( https://developer.apple.com/library/content/documentation/TVMLKitJS/Conceptual/TVMLProgrammingGuide/ExpandingYourApp.html#//apple_ref/doc/uid/TP40016718 -CH3-SW2 ) 2 番目のセクション (ページ間の移動) では、正確に何をする必要があるかを示します。

簡単に言えば、次のような JavaScript の関数が必要です (上のリンクのサンプル コードから引用)。

function getDocument(url) {
    var templateXHR = new XMLHttpRequest();
    templateXHR.responseType = "document";
    templateXHR.addEventListener("load", function() {pushDoc(templateXHR.responseXML);}, false);
    templateXHR.open("GET", url, true);
    templateXHR.send();
}

次に、TVML で、ユーザーが押すボタンまたは何かが必要です。

<button onselect="getDocument('templates/NextPage.xml')">
        <text>Next page</text>
</button>

重要なのは、onselect="getDocument('link to new tvml page')" を追加することです。これは、JavaScript に追加したコードから取得されます。

于 2017-05-04T20:24:03.737 に答える
0

「この製品を別の製品ページにリンクする」と言うとき、ユーザーが選択項目をその項目に移動してから選択したとき (Siri リモコンのタッチパッドをクリックし、IR リモコンの選択を押し、リモート iOS アプリの画面)、productBundleTemplate に基づく現在の表示を削除し、productTemplate に基づく新しい表示を代わりに表示する必要があります。さらに、「ボタンを他のコンテンツにリンクする」とは、ボタンに移動してから選択すると別のページに移動するという、似たような意味だと思います。

それには 3 つの部分があります。「箱から出して」、アイテムを選択しても、UI が少し揺れる以外は何もしません。(ユーザーがリンクをクリックしたときに、href をたどるという概念が Web ブラウザーに組み込まれていないようなものです。)

最初の部分は、"select" イベント用の JavaScript イベント ハンドラーをセットアップする必要があるということです。リスト内のロックアップとボタンのロックアップの両方で、「選択」はユーザーがそれを行ったときに発生するイベントです。他にもイベントはありますが、この2点で欲しいのは「select」だと思います。

2番目の部分は、どこに行くかを決めなければならないということです. これを行う方法はいくつかありますが、最も簡単な方法は、「選択」イベントを受け取る TVML 要素にカスタム属性を追加することです。次に、イベント ハンドラーでイベントから要素を逆参照し、カスタム属性を読み取ると、すぐに実行できます。製品ページが静的に生成されている場合は、実際の URL を含めるだけでよく、属性として「href」を使用することもあります。商品ページが動的に生成される場合は、「productid」属性を定義できます。

3 番目の部分は、新しいコンテンツを JavaScript のメモリに取得し、「navigationDocument」オブジェクトのメソッドを使用してユーザーの前に配置することです。アプリ バンドルやサーバーなど、どこかに既に存在する TVML ファイルを扱っている場合は、XMLHttpRequest 呼び出しを行って取得します。JavaScript 内で完全に動的に構築された TVML を扱っている場合は、それを行うためのコードを記述する必要があります (ただし、それほど複雑である必要はありません)。

私が見た「URL を含む既存の TVML ファイル」アプローチの最も単純な例は次のとおりです。

https://gist.github.com/rayh/d023aeba28a25ed7f7f2

私が見た「TVML を動的に作成する」アプローチの最も単純な例は、次のチュートリアルの「createAlert」関数です。

http://www.raywenderlich.com/114886/beginning-tvos-development-with-tvml-tutorial

于 2016-01-12T18:42:58.427 に答える