Я пытаюсь реализовать push-уведомление с помощью Phonegap в android с помощью push-плагина. Все работает отлично, но проблема с идентификационными номерами устройств. Каждое приложение-приложение запускает его, отправляет на сервер запрос ajax для хранения идентификаторов регистрации позже, он может быть использован для отправки уведомлений на устройство. На стороне сервера я также проверил, зарегистрировано ли устройство. Проблема в том же самом устройстве, при котором генерируются разные идентификаторы регистрации, поэтому проверка на стороне сервера не выполняется (поскольку у того же устройства есть разные идентификаторы регистров). Вот мой толчок .js файл
document.addEventListener("deviceready", onDeviceReady, false); var pushNotification; function onDeviceReady() { pushNotification = window.plugins.pushNotification; setupNotificationsForandroid(); } function setupNotificationsForandroid() { if ( device.platform == 'android' || device.platform == 'Android' || device.platform == "amazon-fireos" ){ pushNotification.register( successHandler, errorHandler, { "senderID":"527612045331", "ecb":"onNotification" }); } else { pushNotification.register( tokenHandler, errorHandler, { "badge":"true", "sound":"true", "alert":"true", "ecb":"onNotificationAPN" }); } } // Android function onNotification(e) { switch( e.event ) { case 'registered': if ( e.regid.length > 0 ){ //set up the server call for storing registraion ids $.ajax({ url:'common_db.php', data:'action='+'registergcm'+'&id='+e.regid, success:function(data){ } }); } break; case 'message': // if this flag is set, this notification happened while we were in the foreground. if(e.foreground){ var soundfile = e.soundname || e.payload.sound; var my_media = new Media("android/assets/www/"+ soundfile); my_media.play(); }else{ // otherwise we were launched because the user touched a notification in the notification tray. } break; case 'error': console.log("Error"+e.msg); break; default: console.log("An unknown event"); return; } }
в моем php-файле
//get id from application $reg_id=$_GET['id']; //this check fails beacuse of differnt registration ids from the device $sql=mysql_query("select reg_id from tbl_insert_ids where id='$reg_id'"); //check if already registerd if(mysql_num_rows($sql)==1){ //do nothing echo ''; }else{ //store the registration ids in database table. $sql=mysql_query("insert into tbl_insert_ids values('','$reg_id')"); if($sql){ echo 'Success'; }else{ echo 'Error' } }
Я тестирую с помощью одного устройства. В моей таблице более двух строк идентификаторов регистрации. Пожалуйста, помогите.