我在這篇博客的HOWTO如下:http://www.pubnub.com/blog/sending-android-push-notifications-via-gcm-javascript-using-phonegap/沒能獲得錯誤pubnub JavaScript回調
截至直到現在我也做了以下內容:
- 創建一個新的項目,谷歌開發控制檯
- 竟然在谷歌雲端通訊Android的
- 得到了發件人ID(項目編號)和服務器 關鍵
然後加推插件到現有項目:
$ cordova plugin add https://github.com/phonegap-build/PushPlugin.git
從插件到我的js的lib文件夾然後複製PushNotification.js。 我加載這個js文件和pubnub cdn與requirejs,這似乎工作正常。
我在howto中創建了一個包含2.2中腳本的模塊。
define(['env-config','datastore/localstore','jquery','push','pubnub'],function (EnvConfig,Store) {
var pushNotification = window.plugins.pushNotification;
function register() {
pushNotification.register(
successHandler,
errorHandler,
{ 'senderID':EnvConfig.push.senderid, 'ecb':'onNotificationGCM'}
);
}
function successHandler(result) {
console.log('Success: '+ result);
}
function errorHandler(error) {
//** The following line throws:
//** java.lang.Long cannot be cast to java.lang.String
console.log('Error:' + error);
}
function onNotificationGCM(e) {
switch(e.event){
case 'registered':
console.log("Device registered with id "+e.regid);
Store.set("pushid"+e.regid);
/*if (e.regid.length > 0) {
deviceRegistered(e.regid);
} */
break;
case 'message':
if (e.foreground){
//What needs to be done when app is in the foreground
//while receiving a notification
console.log('A notification has been received');
}
break;
case 'error':
console.log('Error: ' + e.msg);
break;
default: console.log('An unknown event was received');
break;
}
}
var module = {
init: function() {
register();
}
};
return module;
});
當設備準備就緒時,我調用這個模塊的init函數。
目前register()失敗並執行errorHandler回調。但console.log失敗:java.lang.Long不能轉換爲java.lang.String。所以我不知道下一步該怎麼做...
任何指針非常感謝。
三星Galaxy S5
的是Android 4.4.2
鉻30.0(在網頁視圖)
科爾多瓦3.6.3-0.2.13
非常感謝......現在的工作:-) ......順便說一下,我也有回調附加onNotificationGCM window對象如此問題所述:https://github.com/phonegap-build/PushPlugin/issues/313 – Jette 2015-02-09 08:37:12