2014-09-24 92 views
0

從這個問題提出(Phonegap PushNotification to open a specific app page)可以在單擊推送通知時在cordova應用程序中打開特定頁面。從答案,我不能看到我的插件中指定的代碼。下面是從GCMIntentService.java我的代碼文件科爾多瓦pushnotification在android中打開特定頁面

@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) 
     { 
      // if we are in the foreground, just surface the payload, else post it to the statusbar 
      if (PushPlugin.isInForeground()) { 
       extras.putBoolean("foreground", true); 
       PushPlugin.sendExtras(extras); 
      } 
      else { 
       extras.putBoolean("foreground", false); 

       // Send a notification if there is a message 
       if (extras.getString("message") != null && extras.getString("message").length() != 0) { 
        createNotification(context, extras); 
       } 
      } 
     } 
    } 

    public void createNotification(Context context, Bundle extras) 
    { 
     NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     String appName = getAppName(this); 
     Intent notificationIntent = new Intent(this, PushHandlerActivity.class); 
     notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     notificationIntent.putExtra("pushBundle", extras); 
     PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

     int defaults = Notification.DEFAULT_ALL; 

     if (extras.getString("defaults") != null) { 
      try { 
       defaults = Integer.parseInt(extras.getString("defaults")); 
      } catch (NumberFormatException e) {} 
     } 

     NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(context) 
       .setDefaults(defaults) 
       .setSmallIcon(context.getApplicationInfo().icon) 
       .setWhen(System.currentTimeMillis()) 
       .setContentTitle(extras.getString("title")) 
       .setTicker(extras.getString("title")) 
       .setContentIntent(contentIntent) 
       .setAutoCancel(true); 

     String message = extras.getString("message"); 
     if (message != null) { 
      mBuilder.setContentText(message); 
     } else { 
      mBuilder.setContentText("<missing message content>"); 
     } 

     String msgcnt = extras.getString("msgcnt"); 
     if (msgcnt != null) { 
      mBuilder.setNumber(Integer.parseInt(msgcnt)); 
     } 

     int notId = 0; 

     try { 
      notId = Integer.parseInt(extras.getString("notId")); 
     } 
     catch(NumberFormatException e) { 
      Log.e(TAG, "Number format exception - Error parsing Notification ID: " + e.getMessage()); 
     } 
     catch(Exception e) { 
      Log.e(TAG, "Number format exception - Error parsing Notification ID" + e.getMessage()); 
     } 

     mNotificationManager.notify((String) appName, notId, mBuilder.build()); 
    } 

    private static String getAppName(Context context) 
    { 
     CharSequence appName = 
       context 
        .getPackageManager() 
        .getApplicationLabel(context.getApplicationInfo()); 

     return (String)appName; 
    } 

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

。請幫助

回答

0
在exsample you're聯

,噹噹正從調用在onCreate法活動的意圖稱爲message額外。然後他們是calling super.loadUrl()

覆蓋PhoneGap活動的onCreate,並打開您可能通過的網址,這是您在通知附加內容中設置的意圖。

+0

你能舉個例子嗎? – 2014-09-24 09:02:18

+0

你已經鏈接到http://stackoverflow.com/questions/16689092/phonegap-pushnotification-to-open-a-specific-app-page – eduyayo 2014-09-24 09:03:15