Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry webworks应用程序和推送通知_Blackberry_Push Notification_Blackberry Webworks - Fatal编程技术网

Blackberry webworks应用程序和推送通知

Blackberry webworks应用程序和推送通知,blackberry,push-notification,blackberry-webworks,Blackberry,Push Notification,Blackberry Webworks,在网上搜索了很多天之后,我从来没有找到我的问题的答案,甚至没有任何人成功地完成了我正在尝试的事情 我正在尝试在黑莓的WebWorks应用程序中实现推送通知,但没有任何运气。我尝试过使用黑莓的演示,但即使是那些也似乎不起作用(其中大多数是针对java中的本机应用),而且黑莓支持团队也没有任何反馈 我想知道的是这是否可能,是否有人做过,是否有人有一个工作样本供我参考 提前感谢在WebWorks应用程序中推送服务是可能的,而且肯定可以实现。有更多关于在WebWorks中使用BIS和BES推送服务的详细

在网上搜索了很多天之后,我从来没有找到我的问题的答案,甚至没有任何人成功地完成了我正在尝试的事情

我正在尝试在黑莓的WebWorks应用程序中实现推送通知,但没有任何运气。我尝试过使用黑莓的演示,但即使是那些也似乎不起作用(其中大多数是针对java中的本机应用),而且黑莓支持团队也没有任何反馈

我想知道的是这是否可能,是否有人做过,是否有人有一个工作样本供我参考


提前感谢

在WebWorks应用程序中推送服务是可能的,而且肯定可以实现。有更多关于在WebWorks中使用BIS和BES推送服务的详细信息。我们的支持论坛还提供了完整的文件供您参考,这些文件可在文章末尾下载。

您首先需要注册Blackberry推送服务

然后,他们会在几天后向您发送一封电子邮件,内容包括应用程序ID、端口和推送启动器密码等

在客户端,您可以监听推送请求:

var port = 100; // Change this to the port you received from RIM
var appId = "The app ID you received from RIM";

var serverUrl = "http://pushapi.eval.blackberry.com";
var max = 100;

var wakeUpPage = "index.html";

function init() {
    var ops = {port : port, appId : appId, serverUrl : serverUrl, wakeUpPage : wakeUpPage, maxQueueCap : max};
blackberry.push.openBISPushListener(ops, pushReceive, pushRegister, simChange);
}


function pushReceive(data) {
    try {
        var message = blackberry.utils.blobToString(data.payload);
        return 0;
    }
    catch(err) {
    }
}

function pushRegister(status) {
if (status == 0) {
  alert("success");
}
else if (status == 1) {
  alert("network error");
}
else if (status == 2) {
  alert("rejected by server");
}
else if (status == 3) {
  alert("invalid parameters");
}
else if (status == -1) {
  alert("general error");
}
else {
  alert("unknown status");
}
}

window.onload = function() {
    init();
}
还要确保config.xml中有

我还注意到,当应用程序关闭时,不会调用pushReceive()。您可以通过在后台运行应用程序绕过此问题:

function handleExit() {
    blackberry.app.requestBackground();
}

blackberry.app.event.onExit(handleExit);
并使用
blackberry.app.request前台()将应用程序带到前端

我花了一段时间才弄明白的另一件事是调用pushRegister()可能需要一段时间(这会在BIS上注册PIN)。
因此,请确保调用此代码,否则您将无法接收推送消息。

使用此代码,我的状态为1(网络错误)。请建议解决方案您好,谢谢您的代码。我使用相同的代码,但注册时出现网络错误。请给我建议任何解决方案。您是否已为BIS注册了SIM卡?是的,我已注册了BIS,但服务器仍在响应。除了实际的网络错误之外,我所能想到的是:您是否已注册推送服务并收到RIM发送的带有端口和应用程序id的电子邮件?如果是,您是否用在该邮件中收到的值替换了port/appId?如果您注册了评估,请使用pushapi.eval.blackberry.com,生产时请使用pushapi.na.blackberry.com