Я получил Push-демо от здесь для работы в симуляторах.
Когда я попробовал его на устройстве Blackberry (BlackBerry Bold 9000) с помощью Push-сообщений UrbanAirship, я не смог получить никаких push-уведомлений.
То, что я сделал до сих пор:
* Изменен пуш-порт со 100 на 29580
* Добавлен идентификатор приложения в качестве атрибута для элемента виджета в config.xml
* Приложение было подписано до загрузки на телефон.
* Я предполагаю, что в коде нет ошибок, потому что при запуске приложения / нажатии кнопки появляются предупреждающие сообщения о запуске / остановке подписки
* Нет никаких признаков активности сети, когда UrbanAirship отправило тестовое сообщение.
Мой файл config.xml выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<widget xmlns:rim="http://www.blackberry.com/ns/widgets" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" id="{app_id}">
<name>Push Example</name>
<description>Samples of code</description>
<author href="http://www.rim.com/" rim:copyright="no copyright" email="webapi@rim.com">
Research in Motion - Web API Team
</author><content src="index.htm" />
<feature id="blackberry.system" required="true" version="1.0.0.0" />
<feature id="blackberry.app" required="true" version="1.0.0.0" />
<feature id="blackberry.invoke.JavaArguments" required="true" version="1.0.0.0" />
<feature id="blackberry.invoke.CalendarArguments" required="true" version="1.0.0.0" />
<feature id="blackberry.invoke" required="true" version="1.0.0.0" />
<feature id="blackberry.push" version="1.0.0"/>
<feature id="blackberry.identity" version="1.0.0"/>
<feature id="blackberry.utils" required="true" version="1.0.0.0" />
<rim:connection timeout="30000">
<id>MDS</id>
<id>BIS-B</id>
<id>TCP_WIFI</id>
<id>TCP_CELLULAR</id>
<id>WAP2</id>
<id>WAP</id>
</rim:connection>
<license href="http://www.license.com">This is a sample license</license>
</widget>
Файл action.js выглядит следующим образом:
//the port that the Push Listener will listen to on the MDS
//Open the rimpublic.property file, which is located in the MDS\config subdirectory
//of your BlackBerry Email and MDS Services Simulators installation directory.
//Ensure the "push.application.reliable.ports=100" line is NOT commented out.
var port = 29580;
function subscribe() {
//open the listener to listen if there is pushed data coming through
blackberry.push.openPushListener(handleReturnData, port);
try {
alert("push listening has started. push port = ("+port+") app id = (" + blackberry.app.id + ") pin = ("+blackberry.identity.PIN+")");
} catch (e) {
alert (e);
}
}
//handleReturnData - the function to call for the event of pushed data coming through
//port - the port to listen on
function handleReturnData(data) {
try {
if (data != null) {
var text = blackberry.utils.blobToString(data.payload);
alert("text recieved from push: " + text);
} else {
alert("No data from the push");
}
} catch (e) {
alert (e);
}
}
function unsubscribe() {
//stop listening for pushed data, a clean up step
blackberry.push.closePushListener(port);
alert("Push listening has stopped");
}
Наконец, мой файл index.html выглядит так:
<html>
<head>
<title>Push Example</title>
<script src="Scripts/action.js" type="text/javascript"></script>
<link href="Styles/styles.css" rel="stylesheet" type="text/css" />
</head>
<body onload="javascript:subscribe();">
<button id="btnUnsubscribe" onclick="unsubscribe();">Unsubscribe</button>
</body>
</html>
Кто-нибудь знает, что может быть не так с моим кодом / конфигурацией?
Ура,
Стивен