2014-10-03 3 views
3

Im работая с Cordova pushPlugin некоторого времени и все другие времена плагин: https://github.com/phonegap-build/PushPlugin работали большими.Cordova pushPlugin не работает ИОС

, но теперь он даже не запрашивает разрешения на отправку уведомлений. У вас есть представление, что случилось? Ive пытался установить, если на 3 приложения, и проблема по-прежнему там, на самом деле, как будто они обновили версию, а не есть ошибка.

Спасибо

+1

Если вы используете IOS 8, то это, вероятно, потому, что плагин не поддерживает его. В окне отладки в XCode вы можете видеть такие ошибки, как: «registerForRemoteNotificationTypes: не поддерживается в iOS 8.0 и более поздних версиях» и «Попытка присвоить значку приложения значок, но не получила разрешения от пользователя на значок приложения». См .: https://github.com/phonegap-build/PushPlugin/issues/364 – Ade

ответ

0

У меня были некоторые проблемы вначале, но теперь он работает нормально. Попробуйте код ниже, он очень понятен.

И это работает и на iOS 8! Я думаю, что сначала я пытался использовать другие методы, в течение которых я получил зарегистрированное приложение iOS 8, и поэтому, когда я вставлял плагин, регистрационная часть снова не требовалась, и теперь я получаю уведомления на iOS 8 тоже.

Две проблемы, с которыми я столкнулся в iOS 7, - это уведомление не очищается от строки состояния даже после того, как я нажимаю и открываю приложение, а значки не отображаются.

 var pushNotification; 
    document.addEventListener("deviceready", onDeviceReady, false); 

    function onDeviceReady(){ 
     console.log("ON DEVICE READY!!!"); 
     navigator.splashscreen.hide(); 

     $("#app-status-ul").append('<li>deviceready event received</li>'); 

     document.addEventListener("backbutton", function(e) 
     { 
      $("#app-status-ul").append('<li>backbutton event received</li>'); 

      if($("#home").length > 0) 
      { 
       // call this to get a new token each time. don't call it to reuse existing token. 
       //pushNotification.unregister(successHandler, errorHandler); 
       e.preventDefault(); 
       navigator.app.exitApp(); 
      } 
      else 
      { 
       navigator.app.backHistory(); 
      } 
     }, false); 

     try 
     { 
      pushNotification = window.plugins.pushNotification; 
      $("#app-status-ul").append('<li>registering ' + device.platform + '</li>'); 

      if (device.platform == 'android' || device.platform == 'Android' || device.platform == 'amazon-fireos') 
      { 
       pushNotification.register(successHandler, errorHandler, {"senderID":"XXXXXXXXXXXXX","ecb":"onNotification"});  // required! 
      } 
      else 
      { 
       pushNotification.register(tokenHandler, errorHandler, {"badge":"true","sound":"true","alert":"false","ecb":"onNotificationAPN"}); // required! 
      } 
     } 
     catch(err) 
     { 
      txt="There was an error on this page.\n\n"; 
      txt+="Error description: " + err.message + "\n\n"; 
      alert(txt); 
      console.log(txt); 
     } 
    } 

// эта часть вне onDeviceReady()

function tokenHandler (result) 
     {    
      console.log("token:"+result); 
//   $("#app-status-ul").append('<li>token: '+ result +'</li>'); 
      // Your iOS push server needs to know the token before it can push to this device 
      // here is where you might want to send it the token for later use. 
     } 

     function successHandler (result) 
     { 
      console.log("in succ handler:"+result); 
//   $("#app-status-ul").append('<li>success:'+ result +'</li>'); 
     } 

     function errorHandler (error) 
     { 
      console.log("in errorhandler:"+error); 
//   $("#app-status-ul").append('<li>error:'+ error +'</li>'); 
     } 
Смежные вопросы