我在使用Android环境的基于Worklight的应用程序中遇到订阅问题。
第一次,当应用程序执行订阅时,一切正常,但是当取消订阅和注销然后再次尝试登录并第二次订阅用户时,就会出现问题。
通常,如日志所示,支持通知并取消订阅用户。但是我收到了这个错误:
无法订阅,服务器上的通知令牌未更新
这是LogCat:
12-31 09:41:17.220:D / CordovaLog(6293):isSupported:true 12-31 09:41:17.220:D / CordovaLog(6293):isSubscribed:12-31 09:41:17.220:E / CPCapp(6293):无法订阅,通知令牌是 未在服务器上更新12-31 09:41:17.295:D / CPCapp(6293):清除 通知订阅。 12-31 09:41:17.300:D / CPCapp(6293):发送 新服务器通知令牌ID。 12-31 09:41:17.300: D / GCMRegistrar(6293):重置com.CPCapp 12-31的退避 09:41:17.300:V / GCMRegistrar(6293):注册app APP_PACKAGE 发件人SENDER_NUMBER
我看到这个问题可能与同一问题有关,但不确定是:IBM Worklight 6.0 - Push subscribing stopped from working
我正在使用Worklight 6.0,Android 4.1和AdapterAuthentication以及endUser作为参数。
答案 0 :(得分:2)
根据评论,我还使用push notifications sample project in Worklight 6.1.0进行了测试。
注销和退回后应用程序无法订阅/取消订阅的原因可能与LogCat中出现的此CordovaPlugin消息有关:
01-02 15:20:13.530:W / CordovaPlugin(27846):试图发送一秒 回调ID:Push66817967 01-02 15:20:13.530: W / CordovaPlugin(27846):结果是: “APA91bHDrNHkbBwVtdrjqHj-KNGnmlMue2heoK7dGIHEnQW6ORJpaFregHRKs9qjUOsuIGue9r3ZfbQvwCQtgGZH9MI7U8gbXmrkrtYgyslHNlQemMjAxK40CuRO78Xw9sTnlrzvEFkA4oZ3PUYLgqMz2fnWsKLd0w”
我已经打开了一个缺陷,它将被调查。
我提出了一个解决方法,通过执行以下操作对我有用,但请注意:
的 HTML:强>
<input type="button" id="logoutButton" value="Logout" onclick="logoutFromApp();" />
的 JavaScript的:强>
请参阅WL.Client.connect
之后添加的WL.Client.reloadApp
。
function logoutFromApp() {
WL.Client.logout("PushAppRealm", {
onSuccess: function() {
WL.Client.reloadApp();
WL.Client.connect({onSuccess: successfulConnect, onFailure: failedConnect});
},
onFailure: function() {
alert ("Failed logging out");}
}
);
}
function successfulConnect() {
WL.Logger.debug ("Connect state: success");
}
function failedConnect() {
WL.Logger.debug ("Connect state: failure");
}