react-native-idosdk 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -16
- package/android/libs/gs-1.4.12.0.jar +0 -0
- package/android/src/main/AndroidManifest.xml +6 -72
- package/android/src/main/java/com/getui/reactnativegetui/GetuiIdoModule.java +237 -0
- package/android/src/main/java/com/getui/reactnativegetui/{GetuiPackage.java → GetuiIdoPackage.java} +4 -4
- package/package.json +1 -1
- package/android/libs/getui-3.3.11.0.jar +0 -0
- package/android/src/main/java/com/getui/reactnativegetui/DemoPushService.java +0 -7
- package/android/src/main/java/com/getui/reactnativegetui/GetuiModule.java +0 -346
- package/android/src/main/java/com/getui/reactnativegetui/PushIntentService.java +0 -110
- package/ios/RCTGetuiIdoModule/RCTGetuiIdoModule.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/RCTGetuiIdoModule/RCTGetuiIdoModule.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
package/README.md
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
2
|
# react-native-idosdk
|
|
4
3
|
* idosdk 是个推官方开发的 IDOSDK React Native 插件,使用该插件可以方便快速地集成推送功能。
|
|
5
4
|
|
|
6
5
|
|
|
7
|
-
|
|
8
6
|
# 环境
|
|
9
7
|
|
|
10
8
|
1. React Native Version
|
|
11
9
|
"react": "18.3.1"
|
|
12
10
|
"react-native": "0.75.4"
|
|
13
|
-
2. 当前react-native-idosdk版本 1.0.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
注意:
|
|
17
|
-
|
|
11
|
+
2. 当前react-native-idosdk版本 1.0.4
|
|
18
12
|
|
|
19
13
|
|
|
20
14
|
# 1.安装
|
|
@@ -34,25 +28,37 @@ npx pod-install
|
|
|
34
28
|
|
|
35
29
|
step2: 链接 (非Autolinking项目, 和iOS非pod项目)
|
|
36
30
|
react-native link
|
|
37
|
-
|
|
31
|
+
````
|
|
38
32
|
|
|
33
|
+
### 1.2 完整代码示例
|
|
39
34
|
|
|
35
|
+
*[AndroidDemo](example/AndroidDemo)
|
|
36
|
+
*[iOSDemo](example/iOSDemo)
|
|
40
37
|
|
|
41
38
|
# 2. 配置
|
|
42
39
|
|
|
43
|
-
*
|
|
44
|
-
|
|
40
|
+
* appId 需要去 [个推官网](https://dev.getui.com) 注册后,在后台配置获取。
|
|
45
41
|
|
|
46
42
|
|
|
47
43
|
## 2.1 Android
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
* AndroidManifest.xml中添加配置
|
|
45
|
+
````xml
|
|
46
|
+
<manifest>
|
|
47
|
+
<application>
|
|
48
|
+
<meta-data android:name="GETUI_APPID" android:value="你的appid"/>
|
|
49
|
+
<meta-data android:name="GT_INSTALL_CHANNEL" android:value=""/>
|
|
50
|
+
</application>
|
|
51
|
+
</manifest>
|
|
52
|
+
````
|
|
53
|
+
* 如果开启混淆
|
|
54
|
+
````proguard
|
|
55
|
+
-keep class com.getui.gs.** { *; }
|
|
56
|
+
-keep class com.getui.gtc.** {*;}
|
|
57
|
+
````
|
|
50
58
|
|
|
51
|
-
|
|
52
59
|
## 2.2 IOS
|
|
53
60
|
|
|
54
61
|
|
|
55
|
-
|
|
56
62
|
### 2.2.2 使用CocoaPods安装
|
|
57
63
|
|
|
58
64
|
如果是原生应用集成react-native
|
|
@@ -63,12 +69,14 @@ react-native link
|
|
|
63
69
|
|
|
64
70
|
````
|
|
65
71
|
pod 'IdoSdkRN', :path => '../node_modules/react-native-idosdk'
|
|
72
|
+
|
|
66
73
|
````
|
|
67
74
|
|
|
68
75
|
2. 终端执行如下命令:
|
|
69
76
|
|
|
70
77
|
````
|
|
71
78
|
pod install
|
|
79
|
+
|
|
72
80
|
````
|
|
73
81
|
|
|
74
82
|
**注意:**
|
|
@@ -82,8 +90,6 @@ pod install
|
|
|
82
90
|
```
|
|
83
91
|
|
|
84
92
|
|
|
85
|
-
|
|
86
|
-
|
|
87
93
|
### 2.4 API调用与订阅消息
|
|
88
94
|
|
|
89
95
|
查看示例
|
|
@@ -91,6 +97,8 @@ pod install
|
|
|
91
97
|
android 与 ios 有部分API不同, 查看插件的index.js 或 index.d.ts中API的注释
|
|
92
98
|
|
|
93
99
|
|
|
100
|
+
|
|
101
|
+
|
|
94
102
|
## 3.iOS注意事项
|
|
95
103
|
|
|
96
104
|
|
|
Binary file
|
|
@@ -1,80 +1,14 @@
|
|
|
1
1
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
2
|
-
|
|
2
|
+
>
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
<uses-sdk
|
|
5
|
+
android:minSdkVersion="14"
|
|
6
|
+
android:targetSdkVersion="30" />
|
|
5
7
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
6
|
-
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
|
7
8
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
8
|
-
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
9
|
-
<uses-permission android:name="android.permission.VIBRATE" />
|
|
10
|
-
<uses-permission android:name="android.permission.GET_TASKS" />
|
|
11
|
-
<!-- oppo android12 需要 alarm权限 -->
|
|
12
|
-
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
|
13
|
-
<uses-permission android:name="getui.permission.GetuiService.${applicationId}" />
|
|
14
|
-
<!-- vivo角标 -->
|
|
15
|
-
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" />
|
|
16
|
-
|
|
17
|
-
<permission
|
|
18
|
-
android:name="getui.permission.GetuiService.${applicationId}"
|
|
19
|
-
android:protectionLevel="signature" />
|
|
20
|
-
|
|
21
9
|
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
|
22
|
-
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
23
|
-
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
24
|
-
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
|
25
|
-
|
|
26
10
|
|
|
27
11
|
<application>
|
|
28
|
-
|
|
29
|
-
<!-- 用户自定义服务继承自GTIntentService,作为SDK与APP桥梁服务,用来接收各种消息和命令回复 -->
|
|
30
|
-
<service
|
|
31
|
-
android:name="com.getui.reactnativegetui.PushIntentService"/>
|
|
32
|
-
<!-- 配置SDK核心服务 -->
|
|
33
|
-
<service
|
|
34
|
-
android:name="com.getui.reactnativegetui.DemoPushService"
|
|
35
|
-
android:exported="true"
|
|
36
|
-
android:label="PushService"
|
|
37
|
-
android:process=":pushservice" />
|
|
38
|
-
|
|
39
|
-
<!-- 配置SDK核心服务 -->
|
|
40
|
-
<service
|
|
41
|
-
android:name="com.igexin.sdk.PushService"
|
|
42
|
-
android:exported="false"
|
|
43
|
-
android:label="NotificationCenter"
|
|
44
|
-
android:process=":pushservice" />
|
|
45
|
-
<service
|
|
46
|
-
android:name="com.igexin.sdk.GTIntentService"
|
|
47
|
-
android:exported="true" />
|
|
48
|
-
<service
|
|
49
|
-
android:name="com.igexin.sdk.GService"
|
|
50
|
-
android:exported="true"
|
|
51
|
-
android:process=":pushservice" >
|
|
52
|
-
<intent-filter>
|
|
53
|
-
<action android:name="com.getui.sdk.action" />
|
|
54
|
-
</intent-filter>
|
|
55
|
-
</service>
|
|
56
|
-
|
|
57
|
-
<activity
|
|
58
|
-
android:name="com.igexin.sdk.GetuiActivity"
|
|
59
|
-
android:exported="true"
|
|
60
|
-
android:process=":pushservice"
|
|
61
|
-
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
|
|
62
|
-
<intent-filter>
|
|
63
|
-
<action android:name="com.getui.sdk.action" />
|
|
64
|
-
</intent-filter>
|
|
65
|
-
</activity>
|
|
66
|
-
<activity
|
|
67
|
-
android:name="com.igexin.sdk.PopupActivity"
|
|
68
|
-
android:configChanges="screenSize|orientation"
|
|
69
|
-
android:exported="false"
|
|
70
|
-
android:process=":pushservice"
|
|
71
|
-
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
|
72
|
-
|
|
73
|
-
<meta-data
|
|
74
|
-
android:name="GTSDK_VERSION"
|
|
75
|
-
android:value="3.3.11.0" />
|
|
76
|
-
<!-- 个推SDK配置结束 -->
|
|
77
|
-
|
|
78
12
|
<service
|
|
79
13
|
android:name="com.getui.gtc.GtcService"
|
|
80
14
|
android:exported="false" >
|
|
@@ -87,10 +21,10 @@
|
|
|
87
21
|
android:name="com.getui.gtc.base.GtcProvider"
|
|
88
22
|
android:authorities="${applicationId}.getui.gtc.provider"
|
|
89
23
|
android:exported="false" />
|
|
90
|
-
|
|
91
24
|
</application>
|
|
92
25
|
|
|
93
|
-
|
|
26
|
+
|
|
27
|
+
<!-- 适配android 11及以上,强烈建议加上 -->
|
|
94
28
|
<queries>
|
|
95
29
|
<intent>
|
|
96
30
|
<action android:name="com.getui.sdk.action" />
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
package com.getui.reactnativegetui;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import com.facebook.react.bridge.Arguments;
|
|
5
|
+
import com.facebook.react.bridge.Callback;
|
|
6
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
8
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
9
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
10
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
11
|
+
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
|
12
|
+
import com.facebook.react.bridge.ReadableType;
|
|
13
|
+
import com.facebook.react.bridge.WritableMap;
|
|
14
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
15
|
+
import com.getui.gs.sdk.GsManager;
|
|
16
|
+
import com.getui.gs.ias.core.GsConfig;
|
|
17
|
+
import org.json.JSONObject;
|
|
18
|
+
import org.json.JSONException;
|
|
19
|
+
import android.text.TextUtils;
|
|
20
|
+
import com.getui.gs.sdk.IGtcIdCallback;
|
|
21
|
+
import android.util.Log;
|
|
22
|
+
import android.os.Handler;
|
|
23
|
+
import android.os.Looper;
|
|
24
|
+
import android.widget.Toast;
|
|
25
|
+
|
|
26
|
+
public class GetuiIdoModule extends ReactContextBaseJavaModule {
|
|
27
|
+
|
|
28
|
+
private Context mContext;
|
|
29
|
+
|
|
30
|
+
private Callback callback;
|
|
31
|
+
private static String TAG = "GetuiIdoModule";
|
|
32
|
+
|
|
33
|
+
public GetuiIdoModule(ReactApplicationContext reactContext) {
|
|
34
|
+
super(reactContext);
|
|
35
|
+
mContext = reactContext;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Override
|
|
39
|
+
public String getName() {
|
|
40
|
+
return "GetuiIdoModule";
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@ReactMethod
|
|
44
|
+
public void startSdk(String appid, String channel) {
|
|
45
|
+
// 设置AppId
|
|
46
|
+
if (!TextUtils.isEmpty(appid)){
|
|
47
|
+
GsConfig.setAppId(appid);
|
|
48
|
+
}
|
|
49
|
+
// 预初始化
|
|
50
|
+
GsManager.getInstance().preInit(mContext);
|
|
51
|
+
// 初始化并注册gtcid
|
|
52
|
+
GsManager.getInstance().init(mContext);
|
|
53
|
+
Toast.makeText(mContext, "GsManager init ", Toast.LENGTH_SHORT).show();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@ReactMethod
|
|
57
|
+
public void gtcid(final Callback callback) {
|
|
58
|
+
String gtCid = GsManager.getInstance().getGtcId();
|
|
59
|
+
if (TextUtils.isEmpty(gtCid)){
|
|
60
|
+
Toast.makeText(mContext, "gtcId: is Empty", Toast.LENGTH_SHORT).show();
|
|
61
|
+
GsManager.getInstance().setGtcIdCallback(new IGtcIdCallback() {
|
|
62
|
+
@Override
|
|
63
|
+
public void onGetGtcId(String gtcId) {
|
|
64
|
+
Log.d(TAG, "onGetGtcId: " + gtcId);
|
|
65
|
+
new Handler(Looper.getMainLooper()).post(() -> {
|
|
66
|
+
Toast.makeText(mContext, "gtcId: "+gtcId, Toast.LENGTH_SHORT).show();
|
|
67
|
+
callback.invoke(gtcId);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}else {
|
|
72
|
+
// Toast.makeText(mContext, "gtcId: is not Empty", Toast.LENGTH_SHORT).show();
|
|
73
|
+
callback.invoke(gtCid);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@ReactMethod
|
|
78
|
+
public void version(Callback callback) {
|
|
79
|
+
callback.invoke(GsManager.getInstance().getVersion());
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@ReactMethod
|
|
83
|
+
public void setDebugEnable(boolean isEnable) {
|
|
84
|
+
GsConfig.setDebugEnable(isEnable);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@ReactMethod
|
|
88
|
+
public void setApplicationGroupIdentifier(String identifier) {
|
|
89
|
+
// Android不需要实现此方法,iOS专用
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@ReactMethod
|
|
93
|
+
public void setSessionTime(int time) {
|
|
94
|
+
GsConfig.setSessionTimeoutMillis(time ); // 转换为毫秒
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@ReactMethod
|
|
98
|
+
public void setMinAppActiveDuration(int val) {
|
|
99
|
+
GsConfig.setMinAppActiveDuration(val ); // 转换为毫秒
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@ReactMethod
|
|
103
|
+
public void setMaxAppActiveDuration(int val) {
|
|
104
|
+
GsConfig.setMaxAppActiveDuration(val); // 转换为毫秒
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@ReactMethod
|
|
108
|
+
public void setEventUploadInterval(int val) {
|
|
109
|
+
GsConfig.setEventUploadInterval(val);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@ReactMethod
|
|
113
|
+
public void setEventForceUploadSize(int val) {
|
|
114
|
+
GsConfig.setEventForceUploadSize(val);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@ReactMethod
|
|
118
|
+
public void setProfileUploadInterval(int val) {
|
|
119
|
+
GsConfig.setProfileUploadInterval(val);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@ReactMethod
|
|
123
|
+
public void setProfileForceUploadSize(int val) {
|
|
124
|
+
GsConfig.setProfileForceUploadSize(val);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@ReactMethod
|
|
128
|
+
public void setUserId(String val) {
|
|
129
|
+
// 设置用户ID,需要根据实际SDK提供的方法实现
|
|
130
|
+
GsManager.getInstance().setUserId(val);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@ReactMethod
|
|
134
|
+
public void setSyncGenerateGtcid(boolean val) {
|
|
135
|
+
// 设置同步生成Gtcid,需要根据实际SDK提供的方法实现
|
|
136
|
+
GsManager.getInstance().syncGenerateGtcId(val);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@ReactMethod
|
|
140
|
+
public void registerEventProperties(ReadableMap val) {
|
|
141
|
+
try {
|
|
142
|
+
JSONObject properties = convertReadableMapToJson(val);
|
|
143
|
+
GsManager.getInstance().registerEventProperties(properties);
|
|
144
|
+
} catch (Exception e) {
|
|
145
|
+
e.printStackTrace();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@ReactMethod
|
|
150
|
+
public void trackCustomKeyValueEventBegin(String eventId) {
|
|
151
|
+
try {
|
|
152
|
+
GsManager.getInstance().onBeginEvent(eventId);
|
|
153
|
+
} catch (Exception e) {
|
|
154
|
+
e.printStackTrace();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@ReactMethod
|
|
159
|
+
public void trackCustomKeyValueEventEnd(String eventId, ReadableMap args, String ext) {
|
|
160
|
+
try {
|
|
161
|
+
GsManager.getInstance().onEndEvent(eventId,convertReadableMapToJson(args),ext);
|
|
162
|
+
} catch (Exception e) {
|
|
163
|
+
e.printStackTrace();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
@ReactMethod
|
|
168
|
+
public void trackCountEvent(String eventId, ReadableMap args, String ext) {
|
|
169
|
+
try {
|
|
170
|
+
// 跟踪计数事件
|
|
171
|
+
GsManager.getInstance().onEvent(eventId, convertReadableMapToJson(args),ext);
|
|
172
|
+
} catch (Exception e) {
|
|
173
|
+
e.printStackTrace();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@ReactMethod
|
|
178
|
+
public void setProfile(ReadableMap profiles, String ext) {
|
|
179
|
+
try {
|
|
180
|
+
JSONObject profileData = convertReadableMapToJson(profiles);
|
|
181
|
+
// 设置用户属性
|
|
182
|
+
GsManager.getInstance().setProfile(profileData,ext);
|
|
183
|
+
} catch (Exception e) {
|
|
184
|
+
e.printStackTrace();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
// 辅助方法:将ReadableMap转换为JSONObject
|
|
192
|
+
private JSONObject convertReadableMapToJson(ReadableMap readableMap) throws Exception {
|
|
193
|
+
JSONObject jsonObject = new JSONObject();
|
|
194
|
+
if (readableMap != null) {
|
|
195
|
+
ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
|
|
196
|
+
while (iterator.hasNextKey()) {
|
|
197
|
+
String key = iterator.nextKey();
|
|
198
|
+
ReadableType type = readableMap.getType(key);
|
|
199
|
+
switch (type) {
|
|
200
|
+
case Null:
|
|
201
|
+
jsonObject.put(key, JSONObject.NULL);
|
|
202
|
+
break;
|
|
203
|
+
case Boolean:
|
|
204
|
+
jsonObject.put(key, readableMap.getBoolean(key));
|
|
205
|
+
break;
|
|
206
|
+
case Number:
|
|
207
|
+
// 尝试获取整数,如果不是整数则获取双精度浮点数
|
|
208
|
+
try {
|
|
209
|
+
jsonObject.put(key, readableMap.getInt(key));
|
|
210
|
+
} catch (Exception e) {
|
|
211
|
+
jsonObject.put(key, readableMap.getDouble(key));
|
|
212
|
+
}
|
|
213
|
+
break;
|
|
214
|
+
case String:
|
|
215
|
+
jsonObject.put(key, readableMap.getString(key));
|
|
216
|
+
break;
|
|
217
|
+
case Map:
|
|
218
|
+
jsonObject.put(key, convertReadableMapToJson(readableMap.getMap(key)));
|
|
219
|
+
break;
|
|
220
|
+
case Array:
|
|
221
|
+
// 数组处理需要额外实现
|
|
222
|
+
jsonObject.put(key, readableMap.getArray(key).toString());
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return jsonObject;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// 发送事件到JS
|
|
231
|
+
private void sendEvent(String eventName, WritableMap params) {
|
|
232
|
+
getReactApplicationContext()
|
|
233
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
234
|
+
.emit(eventName, params);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
}
|
package/android/src/main/java/com/getui/reactnativegetui/{GetuiPackage.java → GetuiIdoPackage.java}
RENAMED
|
@@ -14,20 +14,20 @@ import java.util.List;
|
|
|
14
14
|
* Created by zhourh on 2017/3/6.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
public class
|
|
17
|
+
public class GetuiIdoPackage implements ReactPackage {
|
|
18
18
|
|
|
19
|
-
public
|
|
19
|
+
public GetuiIdoPackage(boolean logEnable) {
|
|
20
20
|
GetuiLogger.ENABLE = logEnable;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
public
|
|
23
|
+
public GetuiIdoPackage(){
|
|
24
24
|
GetuiLogger.ENABLE = true;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
@Override
|
|
28
28
|
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
|
29
29
|
return Arrays.asList(new NativeModule[]{
|
|
30
|
-
new
|
|
30
|
+
new GetuiIdoModule(reactContext)
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
package com.getui.reactnativegetui;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
import com.facebook.react.bridge.Arguments;
|
|
5
|
-
import com.facebook.react.bridge.Callback;
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
7
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
8
|
-
import com.facebook.react.bridge.ReactMethod;
|
|
9
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
10
|
-
import com.facebook.react.bridge.WritableMap;
|
|
11
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
12
|
-
import com.getui.gtc.base.util.CommonUtil;
|
|
13
|
-
import com.igexin.sdk.IUserLoggerInterface;
|
|
14
|
-
import com.igexin.sdk.PushManager;
|
|
15
|
-
import com.igexin.sdk.Tag;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Created by zhourh on 2017/3/6.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
public class GetuiModule extends ReactContextBaseJavaModule {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
public static final String EVENT_RECEIVE_REMOTE_NOTIFICATION = "receiveRemoteNotification";
|
|
26
|
-
|
|
27
|
-
public static final String EVENT_TYPE_RECEIVE_CID = "cid";
|
|
28
|
-
public static final String EVENT_TYPE_PAYLOAD = "payload";
|
|
29
|
-
public static final String EVENT_TYPE_CMD = "cmd";
|
|
30
|
-
public static final String EVENT_TYPE_NOTIFICATION_ARRIVED = "notificationArrived";
|
|
31
|
-
public static final String EVENT_TYPE_NOTIFICATION_CLICKED = "notificationClicked";
|
|
32
|
-
|
|
33
|
-
private static ReactApplicationContext mRAC;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
public GetuiModule(ReactApplicationContext reactContext) {
|
|
40
|
-
super(reactContext);
|
|
41
|
-
mRAC = reactContext;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@Override
|
|
45
|
-
public boolean canOverrideExistingModule() {
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@Override
|
|
50
|
-
public String getName() {
|
|
51
|
-
return "GetuiModule";
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@Override
|
|
55
|
-
public void initialize() {
|
|
56
|
-
super.initialize();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@Override
|
|
60
|
-
public void onCatalystInstanceDestroy() {
|
|
61
|
-
super.onCatalystInstanceDestroy();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* 初始化推送服务
|
|
66
|
-
*/
|
|
67
|
-
@ReactMethod
|
|
68
|
-
public void initPush(){
|
|
69
|
-
PushManager.getInstance().setDebugLogger(mRAC, new IUserLoggerInterface() {
|
|
70
|
-
@Override
|
|
71
|
-
public void log(String s) {
|
|
72
|
-
GetuiLogger.logE(s);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
GetuiLogger.log("initPush, mRAC = " + mRAC);
|
|
76
|
-
PushManager.getInstance().initialize(mRAC, DemoPushService.class);
|
|
77
|
-
PushManager.getInstance().registerPushIntentService(mRAC, PushIntentService.class);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Android 不存在 destroy方法,仅停止推送服务
|
|
81
|
-
*/
|
|
82
|
-
@ReactMethod
|
|
83
|
-
public void destroy(){
|
|
84
|
-
// PushManager.getInstance().stopService(mRAC);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* 停止SDK服务
|
|
89
|
-
*/
|
|
90
|
-
@ReactMethod
|
|
91
|
-
public void stop(){
|
|
92
|
-
// PushManager.getInstance().stopService(mRAC);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* 恢复SDK运行,重新接收推送
|
|
97
|
-
*/
|
|
98
|
-
@ReactMethod
|
|
99
|
-
public void resume(){
|
|
100
|
-
PushManager.getInstance().turnOnPush(mRAC);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* 打开SDK的推送.
|
|
105
|
-
*/
|
|
106
|
-
@ReactMethod
|
|
107
|
-
public void turnOnPush(){
|
|
108
|
-
PushManager.getInstance().turnOnPush(mRAC);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* 关闭SDK的推送.
|
|
113
|
-
*/
|
|
114
|
-
@ReactMethod
|
|
115
|
-
public void turnOffPush(){
|
|
116
|
-
PushManager.getInstance().turnOffPush(mRAC);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* 获取SDK的Cid
|
|
121
|
-
*
|
|
122
|
-
* @return Cid值
|
|
123
|
-
*/
|
|
124
|
-
@ReactMethod
|
|
125
|
-
public void clientId(Callback callback){
|
|
126
|
-
String clientId = PushManager.getInstance().getClientid(mRAC);
|
|
127
|
-
GetuiLogger.log("clientId = " + clientId);
|
|
128
|
-
callback.invoke(clientId);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* 获取SDK运行状态,
|
|
133
|
-
*
|
|
134
|
-
* @return 运行状态 1为已开启推送,2为已停止推送
|
|
135
|
-
*/
|
|
136
|
-
@ReactMethod
|
|
137
|
-
public void status(Callback callback){
|
|
138
|
-
boolean isPushTurnOn = PushManager.getInstance().isPushTurnedOn(mRAC);
|
|
139
|
-
GetuiLogger.log("isPushTurnOn = " + isPushTurnOn);
|
|
140
|
-
callback.invoke(isPushTurnOn ? "1" : "2" );
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* 获取SDK版本号
|
|
145
|
-
*
|
|
146
|
-
* @return 版本号
|
|
147
|
-
*/
|
|
148
|
-
@ReactMethod
|
|
149
|
-
public void version(Callback callback){
|
|
150
|
-
String version = PushManager.getInstance().getVersion(mRAC);
|
|
151
|
-
GetuiLogger.log("version = " + version);
|
|
152
|
-
callback.invoke(version);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* 是否允许SDK 后台运行(默认为true)
|
|
158
|
-
* 该方法在Android中无效,仅在iOS有效
|
|
159
|
-
* @param isEnable
|
|
160
|
-
*/
|
|
161
|
-
@ReactMethod
|
|
162
|
-
public void runBackgroundEnable(boolean isEnable){
|
|
163
|
-
// Empty
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* 地理围栏功能,设置地理围栏是否运行
|
|
169
|
-
* 该方法在Android中无效,仅在iOS有效,在AndroidManifest.xml开启相应地权限
|
|
170
|
-
* <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
171
|
-
* <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
172
|
-
* @param isEnable 设置地理围栏功能是否运行(默认值:NO)
|
|
173
|
-
* @param isVerify 设置是否SDK主动弹出用户定位请求(默认值:NO)
|
|
174
|
-
*/
|
|
175
|
-
@ReactMethod
|
|
176
|
-
public void lbsLocationEnable(boolean isEnable, boolean isVerify){
|
|
177
|
-
// Empty
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* 设置渠道
|
|
183
|
-
* 该方法在Android中无效,仅在iOS有效Ø
|
|
184
|
-
* @param channelId 渠道值,可以为空值
|
|
185
|
-
*/
|
|
186
|
-
@ReactMethod
|
|
187
|
-
public void setChannelId(String channelId){
|
|
188
|
-
// Empty
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* 向个推服务器注册DeviceToken
|
|
194
|
-
* 该方法在Android中无效,仅在iOS有效
|
|
195
|
-
* @param deviceToken
|
|
196
|
-
*/
|
|
197
|
-
@ReactMethod
|
|
198
|
-
public void registerDeviceToken(String deviceToken){
|
|
199
|
-
// Empty
|
|
200
|
-
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* 绑定别名功能:后台可以根据别名进行推送
|
|
205
|
-
*
|
|
206
|
-
* @param alias 别名字符串
|
|
207
|
-
* @param aSn 绑定序列码, Android中无效,仅在iOS有效
|
|
208
|
-
*/
|
|
209
|
-
@ReactMethod
|
|
210
|
-
public void bindAlias(String alias, String aSn){
|
|
211
|
-
PushManager.getInstance().bindAlias(mRAC, alias);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* 取消绑定别名功能
|
|
216
|
-
*
|
|
217
|
-
* @param alias 别名字符串
|
|
218
|
-
* @param aSn 绑定序列码, Android中无效,仅在iOS有效
|
|
219
|
-
*/
|
|
220
|
-
@ReactMethod
|
|
221
|
-
public void unbindAlias(String alias, String aSn){
|
|
222
|
-
PushManager.getInstance().unBindAlias(mRAC, alias, false);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* 给用户打标签 , 后台可以根据标签进行推送
|
|
227
|
-
*
|
|
228
|
-
* @param tags 别名数组
|
|
229
|
-
*/
|
|
230
|
-
@ReactMethod
|
|
231
|
-
public void setTag(ReadableArray tags){
|
|
232
|
-
if (tags == null || tags.size() == 0){
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
Tag[] tagArray = new Tag[tags.size()];
|
|
237
|
-
for (int i = 0; i < tags.size(); i++ ){
|
|
238
|
-
Tag tag = new Tag();
|
|
239
|
-
tag.setName(tags.getString(i));
|
|
240
|
-
tagArray[i] = tag;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
PushManager.getInstance().setTag(mRAC, tagArray, "setTag");
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* 设置关闭推送模式
|
|
248
|
-
* Android中无效,仅在iOS有效
|
|
249
|
-
*
|
|
250
|
-
* @param isValue
|
|
251
|
-
*/
|
|
252
|
-
@ReactMethod
|
|
253
|
-
public void setPushModeForOff(boolean isValue){
|
|
254
|
-
// Empty
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* 同步角标值到个推服务器
|
|
259
|
-
* Android中无效,仅在iOS有效
|
|
260
|
-
* @param value
|
|
261
|
-
*/
|
|
262
|
-
@ReactMethod
|
|
263
|
-
public void setBadge(int value){
|
|
264
|
-
PushManager.getInstance().setBadgeNum(mRAC,value);
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* 重置角标值到个推服务器
|
|
269
|
-
* Android中无效,仅在iOS有效
|
|
270
|
-
* @param badge
|
|
271
|
-
*/
|
|
272
|
-
@ReactMethod
|
|
273
|
-
public void resetBadge(int badge){
|
|
274
|
-
PushManager.getInstance().setBadgeNum(mRAC,badge);
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* SDK发送上行消息结果
|
|
280
|
-
* Android中无效,仅在iOS有效
|
|
281
|
-
* @param body 需要发送的消息数据
|
|
282
|
-
* @param error 如果发送成功返回messageid
|
|
283
|
-
*
|
|
284
|
-
*/
|
|
285
|
-
@ReactMethod
|
|
286
|
-
public void sendMessage(String body, String error){
|
|
287
|
-
// Empty
|
|
288
|
-
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
/**
|
|
292
|
-
* 上行第三方自定义回执actionid
|
|
293
|
-
* @param actionId 用户自定义的actionid,int类型,取值90001-90999。
|
|
294
|
-
* @param taskId 下发任务的任务ID
|
|
295
|
-
* @param msgId 下发任务的消息ID
|
|
296
|
-
*
|
|
297
|
-
* @return 上行成功或失败,若上行失败,可能上行失败;taskid为空或者 messageid 为空 或者 actionid 不在取值范围以内
|
|
298
|
-
*/
|
|
299
|
-
@ReactMethod
|
|
300
|
-
public void sendFeedbackMessage(int actionId, String taskId, String msgId, Callback callback){
|
|
301
|
-
callback.invoke(PushManager.getInstance().sendFeedbackMessage(mRAC, taskId, msgId, actionId));
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* 设置静默时间
|
|
306
|
-
*
|
|
307
|
-
* @param beginHour 开始时间,设置范围在0-23小时之间,单位 h
|
|
308
|
-
* @param duration 持续时间,设置范围在0-23小时之间。持续时间为0则不静默,单位 h
|
|
309
|
-
*/
|
|
310
|
-
@ReactMethod
|
|
311
|
-
public void sendSilentTime(int beginHour, int duration, Callback callback){
|
|
312
|
-
callback.invoke(PushManager.getInstance().setSilentTime(mRAC, beginHour, duration));
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* 设置Socket超时时间
|
|
318
|
-
* @param times 超时时间
|
|
319
|
-
*/
|
|
320
|
-
@ReactMethod
|
|
321
|
-
public void setSocketTimeout(int times){
|
|
322
|
-
PushManager.getInstance().setSocketTimeout(mRAC, times);
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
/**
|
|
326
|
-
* 往JavaScript发送事件通知
|
|
327
|
-
* @param eventName
|
|
328
|
-
* @param type
|
|
329
|
-
* @param value
|
|
330
|
-
*/
|
|
331
|
-
public static void sendEvent(String eventName, String type, String key, String value){
|
|
332
|
-
WritableMap param = Arguments.createMap();
|
|
333
|
-
param.putString("type", type);
|
|
334
|
-
param.putString(key, value);
|
|
335
|
-
sendEvent(eventName, param);
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* 往JavaScript发送事件通知
|
|
339
|
-
* @param eventName
|
|
340
|
-
* @param params
|
|
341
|
-
*/
|
|
342
|
-
public static void sendEvent(String eventName, WritableMap params){
|
|
343
|
-
mRAC.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
344
|
-
.emit(eventName, params);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
package com.getui.reactnativegetui;
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Created by zhourh on 2017/3/7.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import android.content.Context;
|
|
8
|
-
|
|
9
|
-
import com.facebook.react.bridge.Arguments;
|
|
10
|
-
import com.facebook.react.bridge.WritableMap;
|
|
11
|
-
import com.igexin.sdk.GTIntentService;
|
|
12
|
-
import com.igexin.sdk.message.GTCmdMessage;
|
|
13
|
-
import com.igexin.sdk.message.GTNotificationMessage;
|
|
14
|
-
import com.igexin.sdk.message.GTTransmitMessage;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* 继承 GTIntentService 接收来自个推的消息, 所有消息在线程中回调<br>
|
|
18
|
-
* onReceiveMessageData 处理透传消息<br>
|
|
19
|
-
* onReceiveClientId 接收 cid <br>
|
|
20
|
-
* onReceiveOnlineState cid 离线上线通知 <br>
|
|
21
|
-
* onReceiveCommandResult 各种事件处理回执 <br>
|
|
22
|
-
*/
|
|
23
|
-
public class PushIntentService extends GTIntentService {
|
|
24
|
-
|
|
25
|
-
public PushIntentService() {
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@Override
|
|
29
|
-
public void onReceiveServicePid(Context context, int pid) {
|
|
30
|
-
GetuiLogger.log("onReceiveServicePid = " + pid);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@Override
|
|
36
|
-
public void onReceiveClientId(Context context, String clientId) {
|
|
37
|
-
GetuiLogger.log("onReceiveClientId = " + clientId);
|
|
38
|
-
WritableMap param = Arguments.createMap();
|
|
39
|
-
param.putString("type", GetuiModule.EVENT_TYPE_RECEIVE_CID);
|
|
40
|
-
param.putString("cid", clientId);
|
|
41
|
-
GetuiModule.sendEvent(GetuiModule.EVENT_RECEIVE_REMOTE_NOTIFICATION, param);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@Override
|
|
45
|
-
public void onReceiveMessageData(Context context, GTTransmitMessage msg) {
|
|
46
|
-
String message = new String(msg.getPayload());
|
|
47
|
-
GetuiLogger.log("onReceiveMessageData msg = " + message);
|
|
48
|
-
WritableMap param = Arguments.createMap();
|
|
49
|
-
param.putString("type", GetuiModule.EVENT_TYPE_PAYLOAD);
|
|
50
|
-
param.putString("payload", message);
|
|
51
|
-
GetuiModule.sendEvent(GetuiModule.EVENT_RECEIVE_REMOTE_NOTIFICATION, param );
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@Override
|
|
55
|
-
public void onReceiveOnlineState(Context context, boolean online) {
|
|
56
|
-
GetuiLogger.log("onReceiveOnlineState online = " + online);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@Override
|
|
60
|
-
public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) {
|
|
61
|
-
GetuiLogger.log("onReceiveCommandResult cmdMessage action = " + cmdMessage.getAction());
|
|
62
|
-
|
|
63
|
-
GetuiModule.sendEvent(GetuiModule.EVENT_RECEIVE_REMOTE_NOTIFICATION,
|
|
64
|
-
GetuiModule.EVENT_TYPE_CMD, "action", String.valueOf(cmdMessage.getAction()));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// 通知到达
|
|
69
|
-
@Override
|
|
70
|
-
public void onNotificationMessageArrived(Context context, GTNotificationMessage message) {
|
|
71
|
-
GetuiLogger.log("onNotificationMessageArrived -> " + "appid = " + message.getAppid() + "\ntaskid = " + message.getTaskId() + "\nmessageid = "
|
|
72
|
-
+ message.getMessageId() + "\npkg = " + message.getPkgName() + "\ncid = " + message.getClientId() + "\ntitle = "
|
|
73
|
-
+ message.getTitle() + "\ncontent = " + message.getContent());
|
|
74
|
-
/*
|
|
75
|
-
GetuiModule.sendEvent(GetuiModule.EVENT_RECEIVE_REMOTE_NOTIFICATION,GetuiModule.EVENT_TYPE_CMD,"NotificationArrived",String.valueOf("appid = " + message.getAppid() + "\ntaskid = " + message.getTaskId() + "\nmessageid = "
|
|
76
|
-
+ message.getMessageId() + "\npkg = " + message.getPkgName() + "\ncid = " + message.getClientId() + "\ntitle = "
|
|
77
|
-
+ message.getTitle() + "\ncontent = " + message.getContent()));
|
|
78
|
-
*/
|
|
79
|
-
WritableMap param = Arguments.createMap();
|
|
80
|
-
param.putString("type",GetuiModule.EVENT_TYPE_NOTIFICATION_ARRIVED);
|
|
81
|
-
param.putString("taskId",message.getTaskId());
|
|
82
|
-
param.putString("messageId",message.getMessageId());
|
|
83
|
-
param.putString("title",message.getTitle());
|
|
84
|
-
param.putString("content",message.getContent());
|
|
85
|
-
param.putString("payload",message.getPayload());
|
|
86
|
-
GetuiModule.sendEvent(GetuiModule.EVENT_RECEIVE_REMOTE_NOTIFICATION,param);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// 点击回调
|
|
90
|
-
@Override
|
|
91
|
-
public void onNotificationMessageClicked(Context context, GTNotificationMessage message) {
|
|
92
|
-
GetuiLogger.log("onNotificationMessageClicked -> " + "appid = " + message.getAppid() + "\ntaskid = " + message.getTaskId() + "\nmessageid = "
|
|
93
|
-
+ message.getMessageId() + "\npkg = " + message.getPkgName() + "\ncid = " + message.getClientId() + "\ntitle = "
|
|
94
|
-
+ message.getTitle() + "\ncontent = " + message.getContent());
|
|
95
|
-
/*
|
|
96
|
-
GetuiModule.sendEvent(GetuiModule.EVENT_RECEIVE_REMOTE_NOTIFICATION,GetuiModule.EVENT_TYPE_CMD,"NotificatioClicked","appid = " + message.getAppid() + "\ntaskid = " + message.getTaskId() + "\nmessageid = "
|
|
97
|
-
+ message.getMessageId() + "\npkg = " + message.getPkgName() + "\ncid = " + message.getClientId() + "\ntitle = "
|
|
98
|
-
+ message.getTitle() + "\ncontent = " + message.getContent());
|
|
99
|
-
*/
|
|
100
|
-
WritableMap param = Arguments.createMap();
|
|
101
|
-
param.putString("type",GetuiModule.EVENT_TYPE_NOTIFICATION_CLICKED);
|
|
102
|
-
param.putString("taskId",message.getTaskId());
|
|
103
|
-
param.putString("messageId",message.getMessageId());
|
|
104
|
-
param.putString("title",message.getTitle());
|
|
105
|
-
param.putString("content",message.getContent());
|
|
106
|
-
param.putString("payload",message.getPayload());
|
|
107
|
-
GetuiModule.sendEvent(GetuiModule.EVENT_RECEIVE_REMOTE_NOTIFICATION,param);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
}
|