Ti.App.fireEvent - 未定义参考错误Ti

时间:2013-03-12 17:54:05

标签: javascript titanium appcelerator titanium-mobile appcelerator-mobile

我有这个简单的Titanium js脚本。

app.js

var win = Ti.UI.createWindow();
    var webview = Ti.UI.createWebView({
        url: 'logging.html'
    });
    webview.addEventListener('help',function(){
        alert('help');
    });
    win.add(webview);
    win.open();

logging.html

<html>
    <body>
        <a onclick="Ti.App.fireEvent('help')">Help</a>
    </body>
</html>

当我点击“帮助”链接时,控制台会向我显示Reference Error: Ti is not defined

我也尝试用钛改变Ti,但是同样的错误。

-------------编辑----------

此错误仅来自网络浏览器。 iOS完美运行。但是

当钛工作室为web mobile编译项目时,我可以看到titanium.js和TI / *文件夹,所以我猜它无法加载Ti对象。谁能解释我为什么?

4 个答案:

答案 0 :(得分:2)

我找到了解决方案!

只需在您的所有html页面添加下面的简单脚本

var Ti = window.parent.Ti

玩得开心!

修改

来自sdk 3.0.2GA版本的

,我想他们已经修好了。现在它没有那个黑客就叫Ti sdk!**

答案 1 :(得分:0)

首先,改变:

webview.addEventListener('help',function(){
    alert('help');
});

致:

Ti.App.addEventListener('help',function(){
    alert('help');
});

第二步:在你的HTML文件中调用“Ti.App.fireEvent()”而没有最后的“s”。

答案 2 :(得分:0)

经过一些测试后,我发现以前的代码在iOS的phisical设备/模拟器和Android上运行完美。

它不在Android网络浏览器模拟器和普通移动浏览器(Firefox作为移动网络应用程序)

所以,似乎Titanium api调用永远不会在Web浏览器上工作,因为“普通的javascript库没有Titanium.*Ti.*”。

答案 3 :(得分:0)

我用过它并且有效

window.parent.TiApp.fireEvent