0

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

应用程序.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();

记录.html

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

当我单击“帮助”链接时,控制台会给我Reference Error: Ti is not defined.

我也尝试用 Titanium 更改 Ti,但同样的错误。

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

此错误仅与 Web 浏览器有关。iOS完美运行。但

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

4

4 回答 4

2

我找到了解决办法!

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

var Ti = window.parent.Ti

玩得开心!

编辑

从 sdk 版本 3.0.2GA 开始,我猜他们修复了它。现在它在没有那个 hack 的情况下调用 Ti sdk!**

于 2013-03-20T14:50:45.283 回答
0

首先,改变:

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

至:

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

第二:在您的 HTML 文件中调用“Ti.App.fireEvent()”而不使用最后的“s”。

于 2013-03-12T20:05:53.090 回答
0

经过一些测试,我发现之前的代码在 iOS 物理设备/模拟器和 Android 上运行良好。

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

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

于 2013-03-12T22:11:09.143 回答
0

我用了这个,它奏效了

window.parent.TiApp.fireEvent
于 2017-10-18T13:59:21.103 回答