Некоторое время назад я пытался выяснить, как отправлять push-уведомления. Приложение, которое я сделал для Android прямо сейчас, но я хочу расширить его на другие устройства, как только я это понял. Я изучил различные сервисы, такие как Amazon SNS, но все они не учитывают, как получить токен устройства. Все думают, что вы знаете, как это сделать.Как получить регистрационный ID с Intel XDK?
Так что я спрашиваю: как получить идентификатор устройства/идентификатор регистрации для устройства?
Я попытался с помощью этого кода:
var tokenID = "";
document.addEventListener("deviceready", function(){
//Unregister the previous token because it might have become invalid. Unregister everytime app is started.
window.plugins.pushNotification.unregister(successHandler, errorHandler);
if(intel.xdk.device.platform == "Android")
{
//register the user and get token
window.plugins.pushNotification.register(
successHandler,
errorHandler,
{
//senderID is the project ID
"senderID":"",
//callback function that is executed when phone recieves a notification for this app
"ecb":"onNotification"
});
}
else if(intel.xdk.device.platform == "iOS")
{
//register the user and get token
window.plugins.pushNotification.register(
tokenHandler,
errorHandler,
{
//allow application to change badge number
"badge":"true",
//allow application to play notification sound
"sound":"true",
//register callback
"alert":"true",
//callback function name
"ecb":"onNotificationAPN"
});
}
}, false);
//app given permission to receive and display push messages in Android.
function successHandler (result) {
alert('result = ' + result);
}
//app denied permission to receive and display push messages in Android.
function errorHandler (error) {
alert('error = ' + error);
}
//App given permission to receive and display push messages in iOS
function tokenHandler (result) {
// Your iOS push server needs to know the token before it can push to this device
// here is where you might want to send the token to your server along with user credentials.
alert('device token = ' + result);
tokenID = result;
}
//fired when token is generated, message is received or an error occured.
function onNotification(e)
{
switch(e.event)
{
//app is registered to receive notification
case 'registered':
if(e.regid.length > 0)
{
// Your Android push server needs to know the token before it can push to this device
// here is where you might want to send the token to your server along with user credentials.
alert('registration id = '+e.regid);
tokenID = e.regid;
}
break;
case 'message':
//Do something with the push message. This function is fired when push message is received or if user clicks on the tile.
alert('message = '+e.message+' msgcnt = '+e.msgcnt);
break;
case 'error':
alert('GCM error = '+e.msg);
break;
default:
alert('An unknown GCM event has occurred');
break;
}
}
//callback fired when notification received in iOS
function onNotificationAPN (event)
{
if (event.alert)
{
//do something with the push message. This function is fired when push message is received or if user clicks on the tile.
alert(event.alert);
}
if (event.sound)
{
//play notification sound. Ignore when app is in foreground.
var snd = new Media(event.sound);
snd.play();
}
if (event.badge)
{
//change app icon badge number. If app is in foreground ignore it.
window.plugins.pushNotification.setApplicationIconBadgeNumber(successHandler, errorHandler, event.badge);
}
}
Все, что я получаю предупреждение, что говорит «результат = нормально». Предупреждений позже в коде не происходит. Я пробовал понять код, но я никуда не денусь. Какие-либо предложения? Есть ли учебник для этого, которого я не нахожу?
Я использую плагин Кордова: https://github.com/phonegap-build/PushPlugin Разве это уже не так хорошо? –
Извините, я слишком быстро посмотрел на ваш код и увидел ссылки на intel.xdk. * И предположил, что вы использовали материал уведомления PushMobi ... Что касается плагина, на который вы ссылаетесь, я не могу сказать вам, является ли он «хорошим» или нет, мы не можем отслеживать все плагины, которые там есть. Обратите внимание, что у него есть несколько тегов релиза, поэтому вы можете попробовать более старые версии. См. Раскрывающееся меню «ветвь: мастер» и выберите «теги» - затем ссылайтесь на плагин следующим образом: https://github.com/phonegap-build/PushPlugin.git#2.3.1, чтобы получить версию с тегом 2.3 .1 тег. – xmnboy