Blackberry WebWorks SMS侦听器异常

时间:2012-01-19 03:03:30

标签: javascript blackberry sms listener blackberry-webworks

规格: WebWorks 2.2,曲线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之外什么也没做。几乎没有关于拥有背景页面的文档。有没有人有任何想法?提前谢谢。

1 个答案:

答案 0 :(得分:0)

是不是网页会转到这些不同的页面并丢弃上一页中的所有内容? (就像您在浏览器中转到新页面时填写的表单一样)

也许你需要利用Application Events检查应用程序何时进入前景或背景;也许仔细检查isListeningForMessage?

我在考虑像

这样的东西
function onFG()
{
  if (!blackberry.message.sms.isListeningForMessage)
  {
    blackberry.message.sms.isListeningForMessage = true;
    blackberry.message.sms.addReceiveListener(messageListener);
  }
}

blackberry.app.event.onForeground(onFG);

如果您需要让代码区分它的运行位置,您还可以使用isForeground布尔值。