wpc
2018-11-27 680fbc9e73da3e11988557cf88fd935efd3e0b1e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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;
            }
        }
    }
}