-
Notifications
You must be signed in to change notification settings - Fork 351
Expand file tree
/
Copy pathJPushHelper.java
More file actions
121 lines (106 loc) · 5.06 KB
/
JPushHelper.java
File metadata and controls
121 lines (106 loc) · 5.06 KB
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
113
114
115
116
117
118
119
120
121
package cn.jiguang.plugins.push.helper;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import org.json.JSONObject;
import java.util.Iterator;
import java.util.Set;
import cn.jiguang.plugins.push.JPushModule;
import cn.jiguang.plugins.push.common.JConstants;
import cn.jiguang.plugins.push.common.JLogger;
import cn.jpush.android.api.CustomMessage;
import cn.jpush.android.api.JPushMessage;
import cn.jpush.android.api.NotificationMessage;
public class JPushHelper {
public static void sendEvent(String eventName, WritableMap params) {
try {
JPushModule.reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName, params);
}catch (Throwable throwable){
JLogger.e("sendEvent error:"+throwable.getMessage());
}
}
public static WritableMap convertNotificationToMap(String eventType, NotificationMessage message) {
WritableMap writableMap = Arguments.createMap();
writableMap.putString(JConstants.NOTIFICATION_EVENT_TYPE, eventType);
writableMap.putString(JConstants.MESSAGE_ID, message.msgId);
writableMap.putString(JConstants.TITLE, message.notificationTitle);
writableMap.putString(JConstants.CONTENT, message.notificationContent);
convertExtras(message.notificationExtras, writableMap);
return writableMap;
}
public static WritableMap convertNotificationBundleToMap(String eventType, Bundle bundle) {
WritableMap writableMap = Arguments.createMap();
writableMap.putString(JConstants.NOTIFICATION_EVENT_TYPE, eventType);
writableMap.putString(JConstants.MESSAGE_ID, bundle.getString("cn.jpush.android.MSG_ID",""));
writableMap.putString(JConstants.TITLE, bundle.getString("cn.jpush.android.NOTIFICATION_CONTENT_TITLE",""));
writableMap.putString(JConstants.CONTENT, bundle.getString("cn.jpush.android.ALERT",""));
convertExtras(bundle.getString("cn.jpush.android.EXTRA",""), writableMap);
return writableMap;
}
public static WritableMap convertCustomMessage(CustomMessage customMessage) {
WritableMap writableMap = Arguments.createMap();
writableMap.putString(JConstants.MESSAGE_ID, customMessage.messageId);
writableMap.putString(JConstants.TITLE, customMessage.title);
writableMap.putString(JConstants.CONTENT, customMessage.message);
writableMap.putString(JConstants.CONTENT_TYPE, customMessage.contentType);
convertExtras(customMessage.extra, writableMap);
return writableMap;
}
public static WritableMap convertJPushMessageToMap(int type, JPushMessage message) {
WritableMap writableMap = Arguments.createMap();
writableMap.putInt(JConstants.CODE, message.getErrorCode());
writableMap.putInt(JConstants.SEQUENCE, message.getSequence());
switch (type) {
case 1:
Set<String> tags = message.getTags();
WritableArray tagsArray = Arguments.createArray();
if(tags==null || tags.isEmpty()){
JLogger.d("tags is empty");
}else {
for (String tag : tags) {
tagsArray.pushString(tag);
}
}
writableMap.putArray(JConstants.TAGS, tagsArray);
break;
case 2:
writableMap.putBoolean(JConstants.TAG_ENABLE, message.getTagCheckStateResult());
writableMap.putString(JConstants.TAG, message.getCheckTag());
break;
case 3:
writableMap.putString(JConstants.ALIAS, message.getAlias());
break;
}
return writableMap;
}
public static void convertExtras(String extras, WritableMap writableMap) {
if (TextUtils.isEmpty(extras) || extras.equals("{}")) return;
try {
WritableMap extrasMap = Arguments.createMap();
JSONObject jsonObject = new JSONObject(extras);
Iterator<String> it = jsonObject.keys();
while (it.hasNext()) {
String key = it.next();
String value = jsonObject.getString(key);
extrasMap.putString(key, value);
}
writableMap.putMap(JConstants.EXTRAS, extrasMap);
} catch (Throwable throwable) {
JLogger.w("convertExtras error:" + throwable.getMessage());
}
}
public static void launchApp(Context context) {
try {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
}catch (Throwable throwable){
JLogger.e("");
}
}
}