0

これが私の状況です。私はチタンで適応したいhtml + css + jqueryのうまく機能するプロジェクトを持っています。このプロジェクトには、ジオロケーション + fb api 呼び出しがあります。

プロジェクトをチタン html5 プロジェクトに適合させたいと考えています。私が見つけたのは、addEventListener および fireEvent 関数を介してのみチタン API を呼び出すことができるということです (もちろん、webviews を使用する場合のみ)。

これは、地理位置情報と facebook API を必要とする、私が取り組んだ最初のチタン プロジェクトです。

実際には、前のプロジェクトの app.js ファイルに addEventlistener を追加し、前のプロジェクトの javascript ファイル (html ファイルの最初のプロジェクトに含まれている) に fireEvents を追加することで、前のプロジェクトの変更を開始しました。 app.js の外で Titan API を呼び出すことはできません)。

問題は、いくつかの値 (オブジェクト) を返す必要があることです。

私が何をしているのかをよりよく理解するために、イベントのシーケンスを次に示します。

チタン プロジェクト (app.js)

var win = Ti.UI.createWindow();

var webview = Ti.UI.createWebView({
    url: 'index.html'
});

Ti.App.addEventListener('geolocation',function(){      
    //some titanium api call

    lat = x;lon=y;
    Ti.App.fireEvent('geolocation_back',{latitude:lat,longitude:lon}); 
});

win.add(webview);
win.open();

HTML + CSS + JS PROJECT (ファイルは index.html にインポートされ、app.js にはインポートされません)

Ti.App.fireEvent('geolocation');

var my_lat ;
var my_lon ;

Ti.App.addEventListener('geolocation_back',function(d){
    my_lat = d.latitude;
    my_lon = d.longitude;
    //do other stuff with my_lat and my_lon
});

私が何をしているのか理解していただければ幸いです。

私の質問は次のとおりです。

1)チタンとhtmlコードを扱う正しい方法は何ですか?

2) html コード内でチタン API を呼び出して、変数/オブジェクトを返す方法は他にありますか?

EDIT このコードは iOS と Android でのみ機能しますが、Web ブラウザーでは機能しません。組み込みサーバー (Titanium studio または Android Web ブラウザー エミュレーター) が Ti.* または Titanium.* オブジェクトをロードしないようです。Webブラウザで動作させる方法はありますか?

Web モバイル コンパイラは、すべての titanium API を、titanium.js と TI/* フォルダのサブフォルダに作成します。Tiが定義されていないとコンソールが言う理由を誰かが説明できますか?

4

1 に答える 1

0

私がここで言ったように

私は解決策を見つけました!

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

var Ti = window.parent.Ti

楽しんで!

于 2013-03-20T14:53:53.717 に答える