2014-09-28 17 views
0

溝通,我硬是從今天開始與鈦和有一個疑問,我無法找到答案(必須是爲什麼我仍然在這方面是個門外漢)。如何使用web視圖和鈦

我想爲我的Mac上,測試的應用程序的Web視圖中的功能在鈦工作當中,例如:

var webview = Titanium.UI.createWebView({url:'http://localhost/myfile.html'}); 
var window = Titanium.UI.createWindow(); 
window.add(webview); 
window.open({modal:true}); 

心願myfile.html內,他可以訪問模式鈦功能,例如作爲警告或甚至訪問麥克風。

+0

你見過這些文件嗎? http://docs.appcelerator.com/titanium/3.0/#!/guide/Communication_Between_WebViews_and_Titanium – phil 2014-09-29 10:37:40

回答

1

首先的......如果你已經選擇鈦作爲一個平臺 - 使用它提供的優勢通過編寫使用,而不是網頁視圖的本地代碼和控制應用程序。正如我所看到的,Titanium中的webviews與本地開發(顯示快速html上下文和頁面,而不是在html中開發應用程序本身)具有相同的用途。如果你想利用html5 + css + js進行移動開發,請查看PhoneGap等。

這就是說,你做了什麼快速的話......你告訴你的WebView查找文件http://localhost下 - 這不存在!你正在運行一個沒有安裝Web服務器的設備。

你想要做的就是添加一個HTML文件到您的項目,並參考該檔案:

var webview = Titanium.UI.createWebView({url:'/myfile.html'}); 

,或者,如果你把你的HTML的一個文件夾裏面,讓我們說html目錄中比它看起來會像這樣:

var webview = Titanium.UI.createWebView({url:'/html/myfile.html'}); 
如果你想打電話鈦白代碼,你需要使用 evalJS()這樣的(注意,該網頁視圖文檔裏面有完成加載調用前)的網頁視圖內功能

webview.evalJS('myFunctionInsideTheWebview()'); 

如果您想從網頁視圖叫鈦的代碼,你將需要添加一個全球性的事件監聽器是這樣的:

Titanium.App.addEventListener('fromwebview',function(e) { 
    Ti.API.info('here is a message from the webview : '+e.msg); 
}); 

,並從這樣的網頁視圖調用它:

Ti.App.fireEvent(\'fromwebview\',{msg:str}); 

注意:全球聽衆真的不推薦!