странное поведение BlackBerry Webworks с JavaScript - PullRequest
1 голос
/ 14 апреля 2011

Я новичок в разработке BB, разрабатывая приложения для iPhone в течение многих лет.

Я пытаюсь создать простое меню, подобное следующему, которое вызывается при загрузке:

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);
}

Inу меня есть файл конфигурации:

<?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>

Установив последний SDK WebWorks, я могу попробовать с эмуляторами семейств OS5 и OS6.

Теперь с симуляторами OS6 все в порядке.Функции Javascript правильно вызываются.

С симуляторами OS5 отображаются пункты меню, но как только я нажимаю на них, просто ничего не происходит.Я пытался также с простыми предупреждениями, а не сохранять и загружать данные в localStorage, но функции просто не вызываются после нажатия пунктов меню.

Кто-нибудь знает, что я делаю неправильно?

Яизвестно, что существует известная проблема при объявлении blackberry.ui.dialog и blackberry.ui.menu в одном приложении, но я просто объявляю blackberry.ui.menu.

1 Ответ

1 голос
/ 14 апреля 2011

Я заметил, что в обеих вызванных функциях вы пытаетесь получить доступ к localStorage. В OS5 обычное локальное хранилище HTML5 не поддерживается, только методы Google Gears. Используете ли вы html5_init.js в вашем проекте? Следуйте этим инструкциям , чтобы добавить его. Это конвертер Google Gears в HTML5 для OS5.

Возможно, это не ваша проблема, но она вам все равно понадобится, если вы пишете приложение Webworks, которое будет работать на обеих версиях ОС.

...