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.dialog同じアプリケーションでとを宣言するときに既知の問題があることは承知していますが、宣言blackberry.ui.menuしているだけですblackberry.ui.menu

4

1 に答える 1

1

呼び出された両方の関数で、localStorage にアクセスしようとしていることに気付きました。OS5 では、通常の HTML5 localStorage はサポートされておらず、Google Gears メソッドのみがサポートされています。プロジェクトで html5_init.js を使用していますか? 以下の手順に従って追加してください。OS5 用の Google Gears から HTML5 への「コンバーター」です。

それは問題ではないかもしれませんが、両方のバージョンの OS で動作する Webworks アプリを作成している場合は、とにかく必要になります。

于 2011-04-14T01:47:19.190 に答える