我是BB开发新手,开发iPhone应用多年。黑莓webworks与javascript的怪异行为
我所试图做的是类似下面的简单的菜单,调用的onLoad:
function initMenus() {
var item = new blackberry.ui.menu.MenuItem(false, 1, "Save", saveMe);
var item2 = new blackberry.ui.menu.MenuItem(false, 2, "Load", loadMe);
blackberry.ui.menu.addMenuItem(item);
blackberry.ui.menu.addMenuItem(item2);
}
function saveMe()
{
localStorage.pixels = window.pageYOffset;
}
function loadMe()
{
window.scrollTo(0, localStorage.pixels);
}
在配置文件中,我有:
<?xml version="1.0" encoding="utf-8"?>
<widget xmlns:rim="http://www.blackberry.com/ns/widgets" version="1.0.0" rim:header="RIM-Widget:rim/widget" xmlns="http://www.w3.org/ns/widgets">
<name>007</name>
<description>Sample Application created using the BlackBerry Widget SDK that demonstrates how to use the Menu and MenuItem objects found within the Widget API collection.</description>
<author href="http://na.blackberry.com/eng/developers/browserdev/widgetsdk.jsp" rim:copyright="2010" email="[email protected]">Adam Stanley</author>
<content src="index.html" />
<feature id="blackberry.ui.menu" required="true" version="1.0.0.0" />
<rim:loadingScreen backgroundColor="#c0c0c0" />
<license href="" />
</widget>
已经安装了WebWorks的最后一个SDK,我可以尝试使用OS5和OS6系列的仿真器。
现在,与OS6模拟器一切都很好。 Javascript函数被正确调用。
随着OS5模拟器的菜单项被显示出来,但是一旦我点击它们,就没有任何反应。我也尝试过使用简单的警报,而不是在localStorage中保存和加载数据,但是在单击菜单项后不会调用函数。
有人知道我在做什么错吗?
我知道在同一应用程序中声明blackberry.ui.dialog
和blackberry.ui.menu
时存在已知问题,但我只是声明了blackberry.ui.menu
。
谢谢安德鲁,你真好!虽然你的回答非常重要,应该在他们的文档中更好地指出,但我真的不使用HTML5(我的意思是,在这个示例中是的,但实际上我可以在这些函数中写入所有内容)。问题是他们根本就没有被调用。 – 2011-04-14 08:58:32
**所以你试了一下,这不起作用?**我的猜测是localStorage不存在,所以函数调用在尝试访问一个不存在的对象时就死了。尝试改变你的功能,像'function saveMe(){alert(“Save Menu Item Chosen”);}'确保菜单项功能实际上被调用。 – 2011-04-14 13:02:21
是的,你是对的!非常感谢!!! – 2011-04-17 17:22:45