0

この単純な Titanium js スクリプトがあります。

app.js

var win = Ti.UI.createWindow();
    var webview = Ti.UI.createWebView({
        url: 'logging.html'
    });
    webview.addEventListener('help',function(){
        alert('help');
    });
    win.add(webview);
    win.open();

logging.html

<html>
    <body>
        <a onclick="Ti.App.fireEvent('help')">Help</a>
    </body>
</html>

ヘルプ リンクをクリックすると、コンソールにReference Error: Ti is not defined.

Tiをチタンに変更してみましたが、同じエラーです。

- - - - - - - 編集 - - - - -

このエラーは Web ブラウザでのみ発生します。iOSは完璧に動作します。しかし

チタンスタジオがWebモバイル用にプロジェクトをコンパイルすると、titanium.jsとTI/*フォルダーが表示されるので、Tiオブジェクトをロードできないと思います。誰かが私に理由を説明できますか?

4

4 に答える 4

2

解決策を見つけました!

以下の簡単なスクリプトをすべての html ページに追加するだけです。

var Ti = window.parent.Ti

楽しんで!

編集

SDKバージョン3.0.2GA以降、修正されたと思います。今ではそのハックなしで Ti sdk を呼び出します!**

于 2013-03-20T14:50:45.283 に答える
0

まず、次を変更します。

webview.addEventListener('help',function(){
    alert('help');
});

に:

Ti.App.addEventListener('help',function(){
    alert('help');
});

そして 2 番目: HTML ファイルの最後の "s" なしで "Ti.App.fireEvent()" を呼び出します。

于 2013-03-12T20:05:53.090 に答える
0

いくつかのテストの後、以前のコードが iOS 物理デバイス/シミュレーターと Android で完全に機能することがわかりました。

Android Web ブラウザー エミュレーターと通常のモバイル ブラウザー (モバイル Web アプリとしての Firefox) にはありません。

そのため、「通常の JavaScript ライブラリにはTitanium.*orがない」ため、Titanium API 呼び出しは Web ブラウザーでは機能しないようTi.*です。

于 2013-03-12T22:11:09.143 に答える
0

私はこれを使用しましたが、うまくいきました

window.parent.TiApp.fireEvent
于 2017-10-18T13:59:21.103 に答える