package com.haicaojie.android.receiver;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.util.Log;
|
|
import com.lcjian.library.util.common.StringUtils;
|
import com.xiaomi.mipush.sdk.ErrorCode;
|
import com.xiaomi.mipush.sdk.MiPushClient;
|
import com.xiaomi.mipush.sdk.MiPushCommandMessage;
|
import com.xiaomi.mipush.sdk.MiPushMessage;
|
import com.xiaomi.mipush.sdk.PushMessageReceiver;
|
import com.haicaojie.android.entity.Message;
|
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
import java.util.List;
|
|
import de.greenrobot.event.EventBus;
|
|
/**
|
* Created by weikou2015 on 2017/8/4.
|
*/
|
|
public class MiPushMessageReceiver extends PushMessageReceiver {
|
|
@Override
|
public void onReceivePassThroughMessage(Context context, MiPushMessage message) {
|
message.getContent();
|
}
|
|
@Override
|
public void onNotificationMessageClicked(Context context, MiPushMessage message) {
|
String cClass = message.getExtra().get("miPushUrl");//miPushUrl
|
String url = message.getExtra().get("webUrl");
|
String id = message.getExtra().get("id");
|
Log.e("mResult", "MiPushMessageReceiver..." + cClass);
|
try {
|
Intent intent = new Intent(context, Class.forName(cClass));
|
if (!StringUtils.isEmpty(message.getExtra().get("content"))) {
|
JSONObject object = new JSONObject(message.getExtra().get("content"));
|
Message msg = new Message();
|
msg.setTitle(object.optString("title"));
|
msg.setId(object.optString("id"));
|
msg.setContent(object.optString("content"));
|
msg.setCreateTime(object.optString("createTime"));
|
msg.setIsOpen(object.optString("isOpen"));
|
if (!StringUtils.isEmpty(msg.getId())) {
|
intent.putExtra("msg", msg);
|
}
|
}
|
if (!StringUtils.isEmpty(url))
|
intent.putExtra("url", url);
|
if (!StringUtils.isEmpty(id)) {
|
intent.putExtra("id", id);
|
}
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
context.startActivity(intent);
|
} catch (ClassNotFoundException e) {
|
e.printStackTrace();
|
} catch (JSONException e) {
|
}
|
}
|
|
@Override
|
public void onNotificationMessageArrived(Context context, MiPushMessage msg) {
|
try {
|
if (!StringUtils.isEmpty(msg.getExtra().get("content"))) {
|
JSONObject object = new JSONObject(msg.getExtra().get("content"));
|
Message message = new Message();
|
message.setTitle(object.optString("title"));
|
message.setId(object.optString("id"));
|
message.setContent(object.optString("content"));
|
message.setCreateTime(object.optString("createTime"));
|
message.setIsOpen(object.optString("isOpen"));
|
EventBus.getDefault().post(message);
|
}
|
Log.i("mResult", "推送内容为:" + msg);
|
Message m = new Message();
|
JSONObject object = new JSONObject(msg.getContent());
|
if ("hongbao".equalsIgnoreCase(object.optJSONObject("customContent").optString("type"))) {
|
SharedPreferences sharedPreferences = context.getSharedPreferences("user", Context.MODE_PRIVATE);
|
sharedPreferences.edit().putBoolean("haveHongbao", true).commit();
|
EventBus.getDefault().post(msg);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void onCommandResult(Context context, MiPushCommandMessage message) {
|
}
|
|
private String mRegId;
|
|
@Override
|
public void onReceiveRegisterResult(Context context, MiPushCommandMessage message) {
|
String command = message.getCommand();
|
List<String> arguments = message.getCommandArguments();
|
String cmdArg1 = ((arguments != null && arguments.size() > 0) ? arguments.get(0) : null);
|
if (MiPushClient.COMMAND_REGISTER.equals(command)) {
|
Log.i("mResult", "注册结果码--" + message.getResultCode());
|
if (message.getResultCode() == ErrorCode.SUCCESS) {
|
Log.i("mResult", "注册成功");
|
mRegId = cmdArg1;
|
}
|
}
|
}
|
}
|