如何使用parse.com在Android设备上接收解析推送notifiactions

Ash*_*hok 4 android android-intent parse-platform

如何通过解析推送通知来实现.如果有人实施解析推送请帮助.

Parse.initialize(Splash.this,"id","id");
ParseInstallation.getCurrentInstallation().saveInBackground();
PushService.setDefaultPushCallback(Splash.this, ParsePush.class);
Run Code Online (Sandbox Code Playgroud)

像这样实施.

无法在jsonData中获取任何值.

public class ParsePush extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        ParseInstallation.getCurrentInstallation().saveInBackground();
        Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        String jsonData = extras.getString("com.parse.Data");
        System.out.println("Data Json : " + jsonData);
    }

}
Run Code Online (Sandbox Code Playgroud)

需要从推送通知(解析)实现一个意图.这需要显示点击推送的活动..请帮助.

tes*_*est 5

您必须编写一个解析广播接收器才能接收通知..写入您的清单

  <receiver
        android:name="com.example.package.ParseBroadcastReceiver"
        android:exported="false"
        android:enabled="true">
        <intent-filter>
            <action android:name="com.example.package.MESSAGE" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

然后定义一个广播接收器

public class ParseBroadcastReceiver extends BroadcastReceiver{

public static final String ACTION                       =   "com.example.package.MESSAGE";
public static final String PARSE_EXTRA_DATA_KEY         =   "com.parse.Data";
public static final String PARSE_JSON_CHANNEL_KEY       =   "com.parse.Channel";

@Override
public void onReceive(Context context, Intent intent) {

     String action = intent.getAction();
        String channel = intent.getExtras().getString(PARSE_JSON_CHANNEL_KEY);
        JSONObject json = new JSONObject(intent.getExtras().getString(PARSE_EXTRA_DATA_KEY));

    }
Run Code Online (Sandbox Code Playgroud)

现在这个json对象将包含你从解析发送的数据..例如,如果你必须使用javascript api发送通知

   Parse.Push.send({where: query, // Set our Installation query
                data: {                   
                    triggerKey:triggerValue, 
                    objectType:"android",
                    action:"com.example.package.MESSAGE"
                }
              },{
              success: function() {
                // Push was successful

              },
              error: function(error) {
                // Handle error

              }
            });
Run Code Online (Sandbox Code Playgroud)

请注意,在推送通知中,您必须提及"操作"键,它应与您在广播接收器意图过滤器中提到的相同.


Ash*_*hok 5

使用这样:

  public class Application extends android.app.Application {

  public Application() {
  }

  @Override
  public void onCreate() {
    super.onCreate();
    Parse.initialize(this, "YOUR_APP_ID", "YOUR_CLIENT_KEY");

    PushService.setDefaultPushCallback(this, MainActivity.class);
  }
}
Run Code Online (Sandbox Code Playgroud)

//MainActivity.java - 单击通知时需要打开的活动.

在您的清单文件中添加此应用程序.

<application    android:name="com.parse.tutorials.pushnotifications.Application"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.parse.tutorials.pushnotifications.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity> </application>
Run Code Online (Sandbox Code Playgroud)

并在MainActivity类中添加此行,您需要在单击通知时打开该行.

Bundle mBundle = getIntent().getExtras();
if (mBundle != null) {
    String mData = mBundle.getString("com.parse.Data");
    System.out.println("DATA : xxxxx : " + mData);
}
Run Code Online (Sandbox Code Playgroud)