2014-09-12 95 views
0

我想知道如何使用parse.com服务在Android手机上推送通知。 哪些字段可用,并且是否可以对推送通知的颜色,图像和格式[粗体,斜体,...]进行样式设置? 谢谢如何使用parse.com通过JSON推送通知[Android]

+0

只需了解如何在android中为通知设置风格,因为无论是从parse.com推送到您的设备,都会按照您的android应用程序的代码(用于通知)以风格显示给用户,但不会解析.com推送通知代码。请参阅[本教程](http://www.tutorialspoint.com/android/android_notifications.htm)了解如何处理android通知。 – 2014-09-12 22:35:43

回答

0

对于Android的推送通知,你可以自定义如下:

  1. 警报:通知的消息。
  2. 操作:当收到推送时应该触发Intent。如果没有指定标题或警报值,意向将被触发,但不会向用户显示任何通知。
  3. 标题:显示在Android系统托盘或Windows 8 Toast通知中的值。

Source

tutorial很可能是有用的。

+0

是否有可能改变文本的格式?例如使用标题等的斜体样式? – 2014-09-13 12:03:36

+0

我不认为这是可能的。抱歉。 – Dehli 2014-09-13 14:38:39

0

你可以开发你自己的风格 第一: 添加自定义推送接收器清单中像自爆:

<receiver android:name=".CustomPushReceiver" android:exported="false"> 
<intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    <action android:name="android.intent.action.USER_PRESENT"/> 
    <action android:name="com.parse.push.intent.RECEIVE"/> 
    <action android:name="com.parse.push.intent.DELETE"/> 
    <action android:name="com.parse.push.intent.OPEN"/> 
</intent-filter> 

CustomPushReceiver:

import android.content.Context; 
import android.content.Intent; 
import android.util.Log; 
import android.widget.Toast; 

import com.parse.ParsePushBroadcastReceiver; 

import mainViews.MainPage; 

import org.json.JSONException; 
import org.json.JSONObject; 



/** 
* Created by SadSad on 01/06/15. 
*/ 
public class CustomPushReceiver extends ParsePushBroadcastReceiver { 
    private final String TAG = CustomPushReceiver.class.getSimpleName(); 

    private NotificationUtils notificationUtils; 

    private Intent parseIntent; 

    public CustomPushReceiver() { 
     super(); 
    } 

    @Override 
    protected void onPushReceive(Context context, Intent intent) { 
     super.onPushReceive(context, intent); 

     System.out.println(intent.getExtras().getString("com.parse.Data")); 

     if (intent == null) 
      return; 

     try { 
      JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data")); 

      System.out.println(json); 

      Log.e(TAG, "Push received: " + json); 

      parseIntent = intent; 

      parsePushJson(context, json); 

     } catch (JSONException e) { 
      Log.e(TAG, "Push message json exception: " + e.getMessage()); 
     } 
    } 

    @Override 
    protected void onPushDismiss(Context context, Intent intent) { 
     super.onPushDismiss(context, intent); 
    } 

    @Override 
    protected void onPushOpen(Context context, Intent intent) { 
     super.onPushOpen(context, intent); 
    } 

    /** 
    * Parses the push notification json 
    * 
    * @param context 
    * @param json 
    */ 
    private void parsePushJson(Context context, JSONObject json) { 
     try { 
      System.out.println(json); 
      boolean isBackground = json.getBoolean("is_background"); 
      JSONObject data = json.getJSONObject("data"); 
      String title = data.getString("title"); 
      String message = data.getString("message"); 

      if (!isBackground) { 
       Intent resultIntent = new Intent(context, MainPage.class); 
       showNotificationMessage(context, title, message, resultIntent); 
      } 

     } catch (JSONException e) { 
      Log.e(TAG, "Push message json exception: " + e.getMessage()); 
     } 
    } 


    /** 
    * Shows the notification message in the notification bar 
    * If the app is in background, launches the app 
    * 
    * @param context 
    * @param title 
    * @param message 
    * @param intent 
    */ 
    private void showNotificationMessage(Context context, String title, String message, Intent intent) { 

    // you can use custom notification 
     notificationUtils = new NotificationUtils(context); 

     intent.putExtras(parseIntent.getExtras()); 

     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

     notificationUtils.showNotificationMessage(title, message, intent); 
    } 
} 

自定义通知: This link is useful for custom notification