1

以前に同様の質問を投稿し、回答を受け取りましたが、新しい問題が発生する前に部分的にしか機能しませんでした.

これは、iframe の $(document).ready() 内のコードです。

$("button#arrow-left", window.parent.document).on("click", function () {
    console.log("Got here");
    $(document).trigger("VEHICLE.CONTROLS.PRESSED_LEFT");
});

これはほとんど機能します。親ドキュメントの左矢印をクリックすると、「Got here」がコンソールに表示されるようになりました。ただし、「VEHICLE.CONTROLS.PRESSED_LEFT」イベントが発生することはありません。

私のiframe JavaScriptの別の部分には、次の行があります。

$(document).on("VEHICLE.CONTROLS.PRESSED_LEFT", function () {
    console.log("Left button pressed, triggering left swipe.");
    $("div#swipe-container").swipe('swipe_left');
});

その 2 番目のコンソール ログは発生せず、私のスワイプ プラグインは左スワイプを正常に実行しません。

誰かが私が間違っていることを教えてもらえますか?

関連する場合に備えて、私は基本的に、車両で実行するように構築された HTML5/JS アプリを取得し、それをブラウザーに移植しています。アプリ自体は iframe で実行され、親ドキュメントにはシミュレートされた車両制御がいくつか含まれています。

スワイプをトリガーするコードの領域内のボタン クリックに直接バインドできることはわかっていますが、アプリケーションとターゲット API の間の媒体として機能する単一の JS ファイルを使用するという考え方です。このようにして、コードが実際の車両で実行されているか、シミュレーターで実行されているかに関係なく、コードの同期を保つことができます。

編集: また、これは、実際の車両 API を使用する前に作業していた機能とほぼ同じでした。車両 API を使用するときに以前にコントロールを設定した例:

sdk.vehicle.watchButtons("left", function () {
    $(document).trigger("VEHICLE.CONTROLS.PRESSED_LEFT");
});
4

0 に答える 0