これが私の状況です。私はチタンで適応したい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が定義されていないとコンソールが言う理由を誰かが説明できますか?