无法使用Titanium的webview来触发API事件

Ala*_* M. 3 addeventlistener titanium webview

我正在尝试从Titanium webview内部打开的外部HTML页面中触发事件.

app.js文件...

var group, now, tab, view, window;

now = new Date();
view = Titanium.UI.createWebView({url: 'http://MYWEBSITE.com/index.htm?time=' + now.getTime()});

window = Titanium.UI.createWindow({tabBarHidden: true, navBarHidden: true});
window.add(view);

Titanium.App.addEventListener('browse', function(e) {
    Ti.API.info("I received " + e.something + " from the webview.");
});

group = Titanium.UI.createTabGroup();
tab = Titanium.UI.createTab({title: 'window', window: window});
group.addTab(tab); 
group.open(tab);
Run Code Online (Sandbox Code Playgroud)

js摘自网页...

$("#testButton").mousedown(function() {
    alert ("I got clicked.");
    Ti.App.fireEvent('browse', {something:'stuff'});
});
Run Code Online (Sandbox Code Playgroud)

(我在URL中包含时间以确保页面始终是新鲜的.)

如上所示添加事件侦听器,或使用view.addEventListener,编译但最终不起作用.

使用Titanium.UI.WebView.addEventListener会生成一个错误消息,指出该对象不存在.

我是否需要以不同的方式打开URL/webview?

此外,由于Titanium.App.fireEvent不是一个公认的功能,除了Titanium,如何防止JavaScript错误?

谢谢.

Aar*_*ers 7

// from web page
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
    <div id='testButton'>TEST BUTTON</div>
</body>

<script>
    var _button = document.getElementById ("testButton");
    _button.onmousedown = function () {
        alert (this.id);
        Ti.App.fireEvent('fromwebview', {name:this.id});
        return false;
    };

</script>
</html>
Run Code Online (Sandbox Code Playgroud)

来自apps.js

Ti.App.addEventListener('fromwebview', function(data) 
{ 
    Titanium.API.info("--> " + data.name);
});
Run Code Online (Sandbox Code Playgroud)