0

это моё положение дел. У меня есть хорошо работающий проект 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 не определен?

+0

Это правильный способ, другим способом было бы использовать 'webview.evalJS()' [для вызова функций или иначе в веб-просмотре] (http: //docs.appcelerator.ком/титан/последний/#!/гид/Communication_Between_WebViews_and_Titanium). Попробуйте 'yourWebView.evalJS ('alert (« Hello »));' –

+0

проблема в том, что он работает только на физических устройствах, это не в веб-браузере. Я предполагаю, что мне понадобится сделать другую версию с нуля для браузера веб-браузера. это правильно? –

+0

Подождите, как вы строите веб-просмотр? Используете ли вы титан для обертывания удаленного веб-сайта? –

ответ

0

как я сказал here

Я нашел решение!

просто добавить все ваши HTML-страниц простой скрипт ниже

вар Ti = window.parent.Ti

весело!

Смежные вопросы