2015-04-04 125 views
0

我使用GCM与我phonegap android应用程序。我面临的问题是,如果应用程序在移动设备上打开,则该应用程序能够收到通知,但如果该应用程序已关闭,则无法收到通知。我已经通过编写的Java代码工作正常。但它无法与接收消息GCM推送通知,如果应用程序关闭在手机(Phonegap Android)

  public class GCMIntentService extends GCMBaseIntentService { 
      public static final String ME="GCMReceiver"; 
      public GCMIntentService() { 
       super("GCMIntentService"); 
       } 
      private static final String TAG = "GCMIntentService"; 
      @Override 
      public void onRegistered(Context context, String regId) { 
       Log.v(ME + ":onRegistered", "Registration ID arrived!"); 
       Log.v(ME + ":onRegistered", regId); 
       JSONObject json; 
       try 
        { 
       json = new JSONObject().put("event", "registered"); 
       json.put("regid", regId); 

       Log.v(ME + ":onRegisterd", json.toString()); 
      // In this case this is the registration ID 
       GCMPlugin.sendJavascript(json); 

        } 
       catch(JSONException e) 
         { 
         // No message to the user is sent, JSON failed 
         Log.e(ME + ":onRegisterd", "JSON exception"); 
        } 
       } 

       @Override 
       public void onUnregistered(Context context, String regId) { 
       Log.d(TAG, "onUnregistered - regId: " + regId); 
       } 

      @Override 
      protected void onMessage(Context context, Intent intent) { 
       Log.d(TAG, "onMessage - context: " + context); 


       // Extract the payload from the message 
        Bundle extras = intent.getExtras(); 
        if (extras != null) { 
        try 
         { 
         Log.v(ME + ":onMessage extras ", extras.getString("message"));          

        JSONObject json; 
        json = new JSONObject().put("event", "message"); 


      json.put("message", extras.getString("message")); 
       json.put("msgcnt", extras.getString("msgcnt")); 

       Log.v(ME + ":onMessage ", json.toString()); 

      GCMPlugin.sendJavascript(json); 
      // Send the MESSAGE to the Javascript application 
      } 
     catch(JSONException e) 
     { 
      Log.e(ME + ":onMessage", "JSON exception"); 
       }   
     } 


      } 

       @Override 
       public void onError(Context context, String errorId) { 
      Log.e(TAG, "onError - errorId: " + errorId); 

     } 
     } 
+0

分享用GCMInterface.java文件写的java代码... – Banik 2015-04-04 18:55:34

+0

Thanks Banik!我已经添加了代码,请检查以上 – user2428218 2015-04-05 17:34:05

+0

我认为你使用的是https://github.com/marknutter/GCM-Cordova插件。当应用程序将背景或被销毁时,无处不在编写任何如何处理推送通知。在我看来,它最好删除这个插件并使用https://github.com/phonegap-build/PushPlugin,否则我不仅要对GCMIntentservice.java进行彻底改变,而且还要对GCMPlugin.java进行彻底改变。并让我知道。 – Banik 2015-04-05 19:24:38

回答

0

所写的,我想你正在使用GCMPlugin plugin.There是无处写东西如何处理推送通知时,应用程序会去后台或者是destroyed.In javascript代码我沟通意见更好地删除这个插件并使用PushPlugin,否则你不得不做一个剧烈的变化,不仅GCMIntentservice.java,而且GCMPlugin.java。

相关问题