我今天从钛开始,并怀疑我找不到答案(必定是为什么我仍然是这个领域的门外汉)。
我想在我的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 :(得分:1)
首先......如果您已经选择Titanium作为平台 - 通过编写使用本机代码和控件而不是webview的应用程序来利用它提供的优势。正如我所看到的,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'});
如果你想通过Titanium代码在你的webview中调用函数,你需要像这样使用evalJS()
(注意webview中的文档必须在调用之前完成加载):
webview.evalJS('myFunctionInsideTheWebview()');
如果要从Webview调用Titanium代码,则需要添加如下全局事件监听器:
Titanium.App.addEventListener('fromwebview',function(e) {
Ti.API.info('here is a message from the webview : '+e.msg);
});
并从像这样的网页视图中调用它:
Ti.App.fireEvent(\'fromwebview\',{msg:str});
注意:真的不推荐全球听众!