mirror of
https://github.com/jpush/jpush-phonegap-plugin.git
synced 2026-04-19 00:03:45 +08:00
Add new tag and alias methods
This commit is contained in:
+182
-85
@@ -35,53 +35,29 @@ import cn.jpush.android.api.BasicPushNotificationBuilder;
|
||||
import cn.jpush.android.api.JPushInterface;
|
||||
import cn.jpush.android.api.TagAliasCallback;
|
||||
import cn.jpush.android.data.JPushLocalNotification;
|
||||
import cn.jpush.android.service.JPushMessageReceiver;
|
||||
|
||||
public class JPushPlugin extends CordovaPlugin {
|
||||
private final static List<String> methodList =
|
||||
Arrays.asList(
|
||||
"addLocalNotification",
|
||||
"areNotificationEnabled",
|
||||
"clearAllNotification",
|
||||
"clearLocalNotifications",
|
||||
"clearNotificationById",
|
||||
"getNotification",
|
||||
"getRegistrationID",
|
||||
"init",
|
||||
"isPushStopped",
|
||||
"onPause",
|
||||
"onResume",
|
||||
"requestPermission",
|
||||
"removeLocalNotification",
|
||||
"reportNotificationOpened",
|
||||
"resumePush",
|
||||
"setAlias",
|
||||
"setBasicPushNotificationBuilder",
|
||||
"setCustomPushNotificationBuilder",
|
||||
"setDebugMode",
|
||||
"setLatestNotificationNum",
|
||||
"setPushTime",
|
||||
"setTags",
|
||||
"setTagsWithAlias",
|
||||
"setSilenceTime",
|
||||
"setStatisticsOpen",
|
||||
"stopPush"
|
||||
);
|
||||
|
||||
private ExecutorService threadPool = Executors.newFixedThreadPool(1);
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private static JPushPlugin instance;
|
||||
private static Activity cordovaActivity;
|
||||
private static String TAG = "JPushPlugin";
|
||||
|
||||
private static boolean shouldCacheMsg = false;
|
||||
private static boolean isStatisticsOpened = false; // 是否开启统计分析功能
|
||||
|
||||
public static String notificationTitle;
|
||||
public static String notificationAlert;
|
||||
public static Map<String, Object> notificationExtras = new HashMap<String, Object>();
|
||||
static String notificationTitle;
|
||||
static String notificationAlert;
|
||||
static Map<String, Object> notificationExtras = new HashMap<String, Object>();
|
||||
|
||||
public static String openNotificationTitle;
|
||||
public static String openNotificationAlert;
|
||||
public static Map<String, Object> openNotificationExtras = new HashMap<String, Object>();
|
||||
static String openNotificationTitle;
|
||||
static String openNotificationAlert;
|
||||
static Map<String, Object> openNotificationExtras = new HashMap<String, Object>();
|
||||
|
||||
static Map<Integer, CallbackContext> eventCallbackMap = new HashMap<Integer, CallbackContext>();
|
||||
|
||||
public JPushPlugin() {
|
||||
instance = this;
|
||||
@@ -89,10 +65,10 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
|
||||
@Override
|
||||
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
|
||||
Log.i(TAG, "JPush initialize.");
|
||||
|
||||
super.initialize(cordova, webView);
|
||||
JPushInterface.init(cordova.getActivity().getApplicationContext());
|
||||
mContext = cordova.getActivity().getApplicationContext();
|
||||
|
||||
JPushInterface.init(mContext);
|
||||
|
||||
cordovaActivity = cordova.getActivity();
|
||||
|
||||
@@ -110,17 +86,12 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
|
||||
public void onPause(boolean multitasking) {
|
||||
Log.i(TAG, "---------------- onPause");
|
||||
shouldCacheMsg = true;
|
||||
if (isStatisticsOpened && multitasking) {
|
||||
JPushInterface.onPause(this.cordova.getActivity());
|
||||
}
|
||||
}
|
||||
|
||||
public void onResume(boolean multitasking) {
|
||||
shouldCacheMsg = false;
|
||||
Log.i(TAG, "---------------- onResume" + "-" + openNotificationAlert
|
||||
+ "-" + notificationAlert);
|
||||
if (isStatisticsOpened && multitasking) {
|
||||
JPushInterface.onResume(this.cordova.getActivity());
|
||||
}
|
||||
@@ -142,15 +113,14 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
instance = null;
|
||||
}
|
||||
|
||||
private static JSONObject getMessageObject(String message,
|
||||
Map<String, Object> extras) {
|
||||
private static JSONObject getMessageObject(String message, Map<String, Object> extras) {
|
||||
JSONObject data = new JSONObject();
|
||||
try {
|
||||
data.put("message", message);
|
||||
JSONObject jExtras = new JSONObject();
|
||||
for (Entry<String, Object> entry : extras.entrySet()) {
|
||||
if (entry.getKey().equals("cn.jpush.android.EXTRA")) {
|
||||
JSONObject jo = null;
|
||||
JSONObject jo;
|
||||
if (TextUtils.isEmpty((String) entry.getValue())) {
|
||||
jo = new JSONObject();
|
||||
} else {
|
||||
@@ -176,8 +146,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
return data;
|
||||
}
|
||||
|
||||
private static JSONObject getNotificationObject(String title,
|
||||
String alert, Map<String, Object> extras) {
|
||||
private static JSONObject getNotificationObject(String title, String alert, Map<String, Object> extras) {
|
||||
JSONObject data = new JSONObject();
|
||||
try {
|
||||
data.put("title", title);
|
||||
@@ -226,8 +195,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
});
|
||||
}
|
||||
|
||||
static void transmitNotificationOpen(String title, String alert,
|
||||
Map<String, Object> extras) {
|
||||
static void transmitNotificationOpen(String title, String alert, Map<String, Object> extras) {
|
||||
if (instance == null) {
|
||||
return;
|
||||
}
|
||||
@@ -244,8 +212,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
JPushPlugin.openNotificationAlert = null;
|
||||
}
|
||||
|
||||
static void transmitNotificationReceive(String title, String alert,
|
||||
Map<String, Object> extras) {
|
||||
static void transmitNotificationReceive(String title, String alert, Map<String, Object> extras) {
|
||||
if (instance == null) {
|
||||
return;
|
||||
}
|
||||
@@ -285,9 +252,6 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
@Override
|
||||
public boolean execute(final String action, final JSONArray data,
|
||||
final CallbackContext callbackContext) throws JSONException {
|
||||
if (!methodList.contains(action)) {
|
||||
return false;
|
||||
}
|
||||
threadPool.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -304,7 +268,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
|
||||
void init(JSONArray data, CallbackContext callbackContext) {
|
||||
JPushInterface.init(this.cordova.getActivity().getApplicationContext());
|
||||
JPushInterface.init(mContext);
|
||||
}
|
||||
|
||||
void setDebugMode(JSONArray data, CallbackContext callbackContext) {
|
||||
@@ -319,18 +283,17 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
|
||||
void stopPush(JSONArray data, CallbackContext callbackContext) {
|
||||
JPushInterface.stopPush(this.cordova.getActivity().getApplicationContext());
|
||||
JPushInterface.stopPush(mContext);
|
||||
callbackContext.success();
|
||||
}
|
||||
|
||||
void resumePush(JSONArray data, CallbackContext callbackContext) {
|
||||
JPushInterface.resumePush(this.cordova.getActivity().getApplicationContext());
|
||||
JPushInterface.resumePush(mContext);
|
||||
callbackContext.success();
|
||||
}
|
||||
|
||||
void isPushStopped(JSONArray data, CallbackContext callbackContext) {
|
||||
boolean isStopped = JPushInterface.isPushStopped(
|
||||
this.cordova.getActivity().getApplicationContext());
|
||||
boolean isStopped = JPushInterface.isPushStopped(mContext);
|
||||
if (isStopped) {
|
||||
callbackContext.success(1);
|
||||
} else {
|
||||
@@ -358,7 +321,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
if (num != -1) {
|
||||
JPushInterface.setLatestNotificationNumber(
|
||||
this.cordova.getActivity().getApplicationContext(), num);
|
||||
mContext, num);
|
||||
} else {
|
||||
callbackContext.error("error num");
|
||||
}
|
||||
@@ -384,13 +347,13 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
} catch (JSONException e) {
|
||||
callbackContext.error("error reading hour json");
|
||||
}
|
||||
Context context = this.cordova.getActivity().getApplicationContext();
|
||||
Context context = mContext;
|
||||
JPushInterface.setPushTime(context, days, startHour, endHour);
|
||||
callbackContext.success();
|
||||
}
|
||||
|
||||
void getRegistrationID(JSONArray data, CallbackContext callbackContext) {
|
||||
Context context = this.cordova.getActivity().getApplicationContext();
|
||||
Context context = mContext;
|
||||
String regID = JPushInterface.getRegistrationID(context);
|
||||
callbackContext.success(regID);
|
||||
}
|
||||
@@ -413,31 +376,167 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
void setTags(JSONArray data, CallbackContext callbackContext) {
|
||||
void setAlias(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
String alias = null;
|
||||
|
||||
try {
|
||||
HashSet<String> tags = new HashSet<String>();
|
||||
for (int i = 0; i < data.length(); i++) {
|
||||
tags.add(data.getString(i));
|
||||
}
|
||||
JPushInterface.setTags(this.cordova.getActivity().getApplicationContext(),
|
||||
tags, mTagWithAliasCallback);
|
||||
callbackContext.success();
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
alias = params.getString("alias");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Error reading tags JSON");
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.setAlias(mContext, sequence, alias);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void setAlias(JSONArray data, CallbackContext callbackContext) {
|
||||
void deleteAlias(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
|
||||
try {
|
||||
String alias = data.getString(0);
|
||||
JPushInterface.setAlias(this.cordova.getActivity().getApplicationContext(),
|
||||
alias, mTagWithAliasCallback);
|
||||
callbackContext.success();
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Error reading alias JSON");
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.deleteAlias(mContext, sequence);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void getAlias(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
|
||||
try {
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.getAlias(mContext, sequence);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void setTags(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
Set<String> tags = new HashSet<String>();
|
||||
|
||||
try {
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
|
||||
JSONArray tagsArr = params.getJSONArray("tags");
|
||||
for (int i = 0; i < tagsArr.length(); i++) {
|
||||
tags.add(tagsArr.getString(i));
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.setTags(mContext, sequence, tags);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void addTags(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
Set<String> tags = new HashSet<String>();
|
||||
|
||||
try {
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
|
||||
JSONArray tagsArr = params.getJSONArray("tags");
|
||||
for (int i = 0; i < tagsArr.length(); i++) {
|
||||
tags.add(tagsArr.getString(i));
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.addTags(mContext, sequence, tags);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void deleteTags(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
Set<String> tags = new HashSet<String>();
|
||||
|
||||
try {
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
|
||||
JSONArray tagsArr = params.getJSONArray("tags");
|
||||
for (int i = 0; i < tagsArr.length(); i++) {
|
||||
tags.add(tagsArr.getString(i));
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.deleteTags(mContext, sequence, tags);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void cleanTags(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
|
||||
try {
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.cleanTags(mContext, sequence);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void getAllTags(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
|
||||
try {
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.getAllTags(mContext, sequence);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void checkTagBindState(JSONArray data, CallbackContext callbackContext) {
|
||||
int sequence = -1;
|
||||
String tag = null;
|
||||
|
||||
try {
|
||||
JSONObject params = data.getJSONObject(0);
|
||||
sequence = params.getInt("sequence");
|
||||
tag = params.getString("tag");
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("Parameters error.");
|
||||
}
|
||||
|
||||
JPushInterface.checkTagBindState(mContext, sequence, tag);
|
||||
eventCallbackMap.put(sequence, callbackContext);
|
||||
}
|
||||
|
||||
void setTagsWithAlias(JSONArray data, CallbackContext callbackContext) {
|
||||
@@ -449,7 +548,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
for (int i = 0; i < tagsArray.length(); i++) {
|
||||
tags.add(tagsArray.getString(i));
|
||||
}
|
||||
JPushInterface.setAliasAndTags(this.cordova.getActivity().getApplicationContext(),
|
||||
JPushInterface.setAliasAndTags(mContext,
|
||||
alias, tags, mTagWithAliasCallback);
|
||||
callbackContext.success();
|
||||
} catch (JSONException e) {
|
||||
@@ -513,8 +612,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
void addLocalNotification(JSONArray data, CallbackContext callbackContext)
|
||||
throws JSONException {
|
||||
void addLocalNotification(JSONArray data, CallbackContext callbackContext) throws JSONException {
|
||||
int builderId = data.getInt(0);
|
||||
String content = data.getString(1);
|
||||
String title = data.getString(2);
|
||||
@@ -537,8 +635,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
JPushInterface.addLocalNotification(this.cordova.getActivity(), ln);
|
||||
}
|
||||
|
||||
void removeLocalNotification(JSONArray data, CallbackContext callbackContext)
|
||||
throws JSONException {
|
||||
void removeLocalNotification(JSONArray data, CallbackContext callbackContext) throws JSONException {
|
||||
int notificationID = data.getInt(0);
|
||||
JPushInterface.removeLocalNotification(this.cordova.getActivity(), notificationID);
|
||||
}
|
||||
@@ -634,7 +731,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
|
||||
String pkg = context.getPackageName();
|
||||
int uid = appInfo.uid;
|
||||
Class appOpsClazz = null;
|
||||
Class appOpsClazz;
|
||||
|
||||
try {
|
||||
appOpsClazz = Class.forName(AppOpsManager.class.getName());
|
||||
|
||||
Reference in New Issue
Block a user