1

我是 BlackBerry 开发的新手,已经开发 iPhone 应用程序多年。

我正在尝试做一个简单的菜单,如下所示,调用 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="astanley@rim.com">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.dialogblackberry.ui.menu在同一个应用程序中存在一个已知问题,但我只是声明blackberry.ui.menu.

4

1 回答 1

1

我注意到在调用的两个函数中,您都在尝试访问 localStorage。在 OS5 上,不支持常规 HTML5 localStorage,仅支持 Google Gears 方法。您在项目中使用 html5_init.js 吗?按照这些说明添加它。它是用于 OS5 的 Google Gears 到 HTML5“转换器”。

这可能不是你的问题,但如果你正在编写一个可以在两个版本的操作系统上运行的 Webworks 应用程序,你无论如何都需要它。

于 2011-04-14T01:47:19.190 回答