Исключение прослушивателя SMS Blackberry WebWorks

Спецификации: WebWorks 2.2, симулятор Curve 9330 OS 6 и устройство

Мы будем, я пробовал почти все, и я не могу понять это. Мое приложение имеет главную страницу (index.html) и фоновую страницу (listener.html), как указано здесь:

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" 
   xmlns:rim="http://www.blackberry.com/ns/widgets" 
   version="1.0.0.0" rim:header="SimpleSMS">
   <name>SimpleSMS</name>
   <description>Simple SMS</description>
   <content src="index.html">
       <rim:background src="listener.html" runOnStartup="true" />
   </content>
   <rim:navigation mode="focus" />
   <access subdomains="false" uri="http://jsconsole.com"/>
   <feature id="blackberry.message.sms" />
   <feature id="blackberry.app" />
   <feature id="blackberry.io.dir" />
   <feature id="blackberry.io.file" />
   <feature id="blackberry.utils" />
</widget>

Listener.html выглядит так:

<!DOCTYPE html>
<html>
    <head>
    <script type="text/javascript" src="message_db2.js"></script>
    <script type="text/javascript">
    </script>
    </head>
    <body onload="initializeListener();">
    </body>
</html>

Функция initializeListener() выглядит следующим образом:

function initializeListener() {
    blackberry.message.sms.isListeningForMessage = true;
    blackberry.message.sms.addReceiveListener(messageListener);
}

Проблема: когда я устанавливаю свое приложение и начинает работать прослушиватель, мое приложение может без проблем получать текстовые сообщения. Как только открываю основное приложение, начинаются проблемы. Если я просто сверну приложение в фоновый режим с помощью кнопки «Назад» или «Завершить», следующее полученное смс вызовет исключение. Если я закрою приложение через меню, исключения не будет, но слушатель перестанет работать. Я прокомментировал весь код в messageListener, и index.html абсолютно ничего не делает, кроме отображения HTML. Практически нет документации относительно наличия фоновой страницы. У кого-нибудь есть идеи? Заранее спасибо.


person WhatAWorld    schedule 19.01.2012    source источник
comment
Здравствуйте, удалось ли вам прослушать и прочитать входящее SMS на ежевике с помощью WebWorks 2.2? Если да, не могли бы вы кратко объяснить? Заранее спасибо.   -  person Елин Й.    schedule 02.05.2017


Ответы (1)


Может быть, Webworks переходит на эти разные страницы и отбрасывает все, что было на предыдущей странице? (Например, что происходит с формой, которую вы заполняете, когда переходите на новую страницу в браузере)

Возможно, вам нужно использовать события приложений, чтобы проверить когда приложение переходит на передний план или фон; Может быть, перепроверить isListeningForMessage?

Я думаю о чем-то вроде

function onFG()
{
  if (!blackberry.message.sms.isListeningForMessage)
  {
    blackberry.message.sms.isListeningForMessage = true;
    blackberry.message.sms.addReceiveListener(messageListener);
  }
}

blackberry.app.event.onForeground(onFG);

Вы также можете использовать логическое значение isForeground, если вы нужно, чтобы ваш код различал, где он работает.

person Core.B    schedule 19.01.2012