это моё положение дел. У меня есть хорошо работающий проект html + css + jquery, который я хочу адаптировать в титане. Этот проект имеет вызов geolocation + fb api.titanium webview fireEvent addEventListener
Я хочу адаптировать свой проект в проект titanium html5. Я обнаружил, что я могу назвать titanium api только через функции addEventListener и fireEvent (конечно, только если я использую webviews).
это мой первый титановый проект, с которым мне нужно геолокацию и facebook api.
Фактически, я начал изменять предыдущий проект, добавив addEventlistener в файл app.js и fireEvents в файлы javascript предыдущего проекта (включенные в первый проект в html-файлах) в частях, которые нуждаются в титане api (я не могу назвать titanium api вне app.js).
проблема в том, что мне нужно вернуть некоторые значения (объекты).
Чтобы лучше понять, что я делаю, вот последовательность событий.
ТИТАНА ПРОЕКТА (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) есть ли другой способ вызова titanium api внутри html-кода и возврата переменных/объектов назад?
EDIT этот код работает только на прошивкой и Android, но не в веб-браузере. кажется, что встроенный сервер (титановая студия или эмулятор веб-браузера Android) не загружает объекты Ti. * или Titanium. *. есть ли способ заставить его работать в веб-браузере?
Я вижу, что веб-мобильный компилятор создает все titanium API в подпапках , есть titanium.js и TI/* папка. может ли кто-нибудь объяснить мне, почему консоль говорит мне, что Ti не определен?
Это правильный способ, другим способом было бы использовать 'webview.evalJS()' [для вызова функций или иначе в веб-просмотре] (http: //docs.appcelerator.ком/титан/последний/#!/гид/Communication_Between_WebViews_and_Titanium). Попробуйте 'yourWebView.evalJS ('alert (« Hello »));' –
проблема в том, что он работает только на физических устройствах, это не в веб-браузере. Я предполагаю, что мне понадобится сделать другую версию с нуля для браузера веб-браузера. это правильно? –
Подождите, как вы строите веб-просмотр? Используете ли вы титан для обертывания удаленного веб-сайта? –