From fad4745e01bbb9b7008eb0407a4f145161891102 Mon Sep 17 00:00:00 2001
From: JoshLi <542938192@qq.com>
Date: Tue, 27 Jul 2021 18:32:54 +0800
Subject: [PATCH] =?UTF-8?q?Android=E6=B7=BB=E5=8A=A0=E6=89=8B=E6=9C=BA?=
=?UTF-8?q?=E5=8F=B7=E8=AE=BE=E7=BD=AE=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/index.html | 26 ++++
src/android/JLogger.java | 46 +++++++
src/android/JPushEventReceiver.java | 191 +++++++++++-----------------
src/android/JPushPlugin.java | 33 ++++-
www/JPushPlugin.js | 14 ++
5 files changed, 195 insertions(+), 115 deletions(-)
create mode 100644 src/android/JLogger.java
diff --git a/example/index.html b/example/index.html
index e8b9960..3a8e534 100644
--- a/example/index.html
+++ b/example/index.html
@@ -200,6 +200,16 @@
alert(error.code)
})
});
+
+ $("#setMobileNumber").click(function (event) {
+ var number = $("#mobileNumberText").val()
+ window.JPush.setMobileNumber({ sequence: 5, mobileNumber: number },
+ function (result) {
+ $("#mobileNumberResult").html(result.mobileNumber)
+ }, function (error){
+ alert(error.code)
+ })
+ })
};
document.addEventListener("deviceready", onDeviceReady, false);
@@ -251,6 +261,14 @@
+
+
@@ -265,6 +283,10 @@
+
+
+
+
@@ -273,6 +295,10 @@
+
+
+
+
diff --git a/src/android/JLogger.java b/src/android/JLogger.java
new file mode 100644
index 0000000..8081b42
--- /dev/null
+++ b/src/android/JLogger.java
@@ -0,0 +1,46 @@
+package cn.jiguang.cordova.push;
+
+import android.util.Log;
+
+public class JLogger {
+
+ public static final String TAG = "[Cordova-JPush]";
+
+ private static boolean isLoggerEnable = false;
+
+ public static void setLoggerEnable(boolean loggerEnable) {
+ Log.d(TAG, "setLoggerEnable:" + loggerEnable);
+ isLoggerEnable = loggerEnable;
+ }
+
+ public static void i(String tag,String msg) {
+ if (isLoggerEnable) {
+ Log.i(TAG+tag, msg);
+ }
+ }
+
+ public static void d(String tag,String msg) {
+ if (isLoggerEnable) {
+ Log.d(TAG+tag, msg);
+ }
+ }
+
+ public static void v(String tag,String msg) {
+ if (isLoggerEnable) {
+ Log.v(TAG+tag, msg);
+ }
+ }
+
+ public static void w(String tag,String msg) {
+ if (isLoggerEnable) {
+ Log.w(TAG+tag, msg);
+ }
+ }
+
+ public static void e(String tag,String error) {
+ if (isLoggerEnable) {
+ Log.e(TAG+tag, error);
+ }
+ }
+
+}
diff --git a/src/android/JPushEventReceiver.java b/src/android/JPushEventReceiver.java
index 17184d9..371336f 100644
--- a/src/android/JPushEventReceiver.java
+++ b/src/android/JPushEventReceiver.java
@@ -3,20 +3,18 @@ package cn.jiguang.cordova.push;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
-import android.util.Log;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
-import java.util.Map;
import java.util.Set;
import cn.jpush.android.api.CustomMessage;
-import cn.jpush.android.api.JPushInterface;
import cn.jpush.android.api.JPushMessage;
import cn.jpush.android.api.NotificationMessage;
+import cn.jpush.android.helper.Logger;
import cn.jpush.android.service.JPushMessageReceiver;
public class JPushEventReceiver extends JPushMessageReceiver {
@@ -26,143 +24,58 @@ public class JPushEventReceiver extends JPushMessageReceiver {
@Override
public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
super.onTagOperatorResult(context, jPushMessage);
- //Log.e(TAG,"onTagOperatorResult:"+jPushMessage);
- JSONObject resultJson = new JSONObject();
+ JLogger.d(TAG,"onTagOperatorResult:"+jPushMessage);
- int sequence = jPushMessage.getSequence();
- try {
- resultJson.put("sequence", sequence);
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- CallbackContext callback = JPushPlugin.eventCallbackMap.get(sequence);
-
- if (callback == null) {
- Log.i(TAG, "Unexpected error, callback is null!");
- return;
- }
-
- if (jPushMessage.getErrorCode() == 0) { // success
- Set tags = jPushMessage.getTags();
- JSONArray tagsJsonArr = new JSONArray();
- for (String tag : tags) {
- tagsJsonArr.put(tag);
- }
-
- try {
+ tryCallback(jPushMessage, new SuccessCallback() {
+ @Override
+ public void onSuccessCallback(JSONObject resultJson) throws JSONException {
+ Set tags = jPushMessage.getTags();
+ JSONArray tagsJsonArr = new JSONArray();
+ for (String tag : tags) {
+ tagsJsonArr.put(tag);
+ }
if (tagsJsonArr.length() != 0) {
resultJson.put("tags", tagsJsonArr);
}
- } catch (JSONException e) {
- e.printStackTrace();
+
}
-
- callback.success(resultJson);
-
- } else {
- try {
- resultJson.put("code", jPushMessage.getErrorCode());
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- callback.error(resultJson);
- }
-
- JPushPlugin.eventCallbackMap.remove(sequence);
+ });
}
@Override
public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage) {
super.onCheckTagOperatorResult(context, jPushMessage);
- //Log.e(TAG,"onCheckTagOperatorResult:"+jPushMessage);
- JSONObject resultJson = new JSONObject();
+ JLogger.d(TAG,"onCheckTagOperatorResult:"+jPushMessage);
- int sequence = jPushMessage.getSequence();
- try {
- resultJson.put("sequence", sequence);
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- CallbackContext callback = JPushPlugin.eventCallbackMap.get(sequence);
-
- if (callback == null) {
- Log.i(TAG, "Unexpected error, callback is null!");
- return;
- }
-
- if (jPushMessage.getErrorCode() == 0) {
- try {
+ tryCallback(jPushMessage, new SuccessCallback() {
+ @Override
+ public void onSuccessCallback(JSONObject resultJson) throws JSONException {
resultJson.put("tag", jPushMessage.getCheckTag());
resultJson.put("isBind", jPushMessage.getTagCheckStateResult());
- } catch (JSONException e) {
- e.printStackTrace();
}
- callback.success(resultJson);
-
- } else {
- try {
- resultJson.put("code", jPushMessage.getErrorCode());
- } catch (JSONException e) {
- e.printStackTrace();
- }
- callback.error(resultJson);
- }
-
- JPushPlugin.eventCallbackMap.remove(sequence);
+ });
}
@Override
public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
super.onAliasOperatorResult(context, jPushMessage);
- //Log.e(TAG,"onAliasOperatorResult:"+jPushMessage);
- JSONObject resultJson = new JSONObject();
+ JLogger.d(TAG,"onAliasOperatorResult:"+jPushMessage);
- int sequence = jPushMessage.getSequence();
- try {
- resultJson.put("sequence", sequence);
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- CallbackContext callback = JPushPlugin.eventCallbackMap.get(sequence);
-
- if (callback == null) {
- Log.i(TAG, "Unexpected error, callback is null!");
- return;
- }
-
- if (jPushMessage.getErrorCode() == 0) { // success
- try {
+ tryCallback(jPushMessage, new SuccessCallback() {
+ @Override
+ public void onSuccessCallback(JSONObject resultJson) throws JSONException {
if (!TextUtils.isEmpty(jPushMessage.getAlias())) {
resultJson.put("alias", jPushMessage.getAlias());
}
- } catch (JSONException e) {
- e.printStackTrace();
}
-
- callback.success(resultJson);
-
- } else {
- try {
- resultJson.put("code", jPushMessage.getErrorCode());
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- callback.error(resultJson);
- }
-
- JPushPlugin.eventCallbackMap.remove(sequence);
+ });
}
@Override
public void onRegister(Context context, String regId) {
- //Log.e(TAG,"onRegister:"+regId);
+ JLogger.d(TAG,"onRegister:"+regId);
JPushPlugin.transmitReceiveRegistrationId(regId);
}
@@ -179,24 +92,74 @@ public class JPushEventReceiver extends JPushMessageReceiver {
public void onNotifyMessageArrived(Context context, NotificationMessage notificationMessage) {
super.onNotifyMessageArrived(context, notificationMessage);
- //Log.e(TAG,"onNotifyMessageArrived:"+notificationMessage);
+ JLogger.d(TAG,"onNotifyMessageArrived:"+notificationMessage);
}
@Override
public void onNotifyMessageOpened(Context context, NotificationMessage notificationMessage) {
super.onNotifyMessageOpened(context, notificationMessage);
- //Log.e(TAG,"onNotifyMessageOpened:"+notificationMessage);
+ JLogger.d(TAG,"onNotifyMessageOpened:"+notificationMessage);
}
@Override
public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) {
super.onMobileNumberOperatorResult(context, jPushMessage);
- //Log.e(TAG,"onMobileNumberOperatorResult:"+jPushMessage);
+ JLogger.d(TAG,"onMobileNumberOperatorResult:"+jPushMessage);
+
+ tryCallback(jPushMessage, new SuccessCallback() {
+ @Override
+ public void onSuccessCallback(JSONObject resultJson) throws JSONException {
+ if (!TextUtils.isEmpty(jPushMessage.getMobileNumber())) {
+ resultJson.put("mobileNumber", jPushMessage.getMobileNumber());
+ }
+ }
+ });
}
@Override
public void onMultiActionClicked(Context context, Intent intent) {
super.onMultiActionClicked(context, intent);
- //Log.e(TAG,"onMultiActionClicked:"+intent);
+ JLogger.d(TAG,"onMultiActionClicked:"+intent);
+ }
+
+ interface SuccessCallback{
+ void onSuccessCallback(JSONObject resultJson) throws JSONException;
+ }
+ public void tryCallback(JPushMessage jPushMessage,SuccessCallback successCallback){
+ JSONObject resultJson = new JSONObject();
+
+ int sequence = jPushMessage.getSequence();
+ try {
+ resultJson.put("sequence", sequence);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ CallbackContext callback = JPushPlugin.eventCallbackMap.get(sequence);
+
+ if (callback == null) {
+ Logger.i(TAG, "Unexpected error, callback is null!");
+ return;
+ }
+
+ if (jPushMessage.getErrorCode() == 0) {
+ try {
+ successCallback.onSuccessCallback(resultJson);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ callback.success(resultJson);
+
+ } else {
+ try {
+ resultJson.put("code", jPushMessage.getErrorCode());
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ callback.error(resultJson);
+ }
+
+ JPushPlugin.eventCallbackMap.remove(sequence);
+
}
}
diff --git a/src/android/JPushPlugin.java b/src/android/JPushPlugin.java
index 8f39a44..39ce64f 100644
--- a/src/android/JPushPlugin.java
+++ b/src/android/JPushPlugin.java
@@ -59,8 +59,9 @@ public class JPushPlugin extends CordovaPlugin {
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
mContext = cordova.getActivity().getApplicationContext();
+ Log.d(TAG,"initialize plugin");
- JPushInterface.init(mContext);
+// JPushInterface.init(mContext);
cordovaActivity = cordova.getActivity();
@@ -254,6 +255,7 @@ public class JPushPlugin extends CordovaPlugin {
try {
mode = data.getBoolean(0);
JPushInterface.setDebugMode(mode);
+ JLogger.setLoggerEnable(mode);
callbackContext.success();
} catch (JSONException e) {
e.printStackTrace();
@@ -296,6 +298,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("error reading num json");
+ return;
}
if (num != -1) {
JPushInterface.setLatestNotificationNumber(mContext, num);
@@ -364,6 +367,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.setAlias(mContext, sequence, alias);
@@ -379,6 +383,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.deleteAlias(mContext, sequence);
@@ -394,6 +399,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.getAlias(mContext, sequence);
@@ -416,6 +422,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.setTags(mContext, sequence, tags);
@@ -438,6 +445,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.addTags(mContext, sequence, tags);
@@ -460,6 +468,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.deleteTags(mContext, sequence, tags);
@@ -476,6 +485,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.cleanTags(mContext, sequence);
@@ -492,6 +502,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.getAllTags(mContext, sequence);
@@ -510,6 +521,7 @@ public class JPushPlugin extends CordovaPlugin {
} catch (JSONException e) {
e.printStackTrace();
callbackContext.error("Parameters error.");
+ return;
}
JPushInterface.checkTagBindState(mContext, sequence, tag);
@@ -642,6 +654,25 @@ public class JPushPlugin extends CordovaPlugin {
JPushInterface.setBadgeNumber(mContext, badgeNumb);
}
+ void setMobileNumber(JSONArray data, CallbackContext callbackContext) throws JSONException {
+ int sequence = -1;
+ String number = null;
+
+ try {
+ JSONObject params = data.getJSONObject(0);
+ sequence = params.getInt("sequence");
+ number = params.getString("mobileNumber");
+
+ } catch (JSONException e) {
+ e.printStackTrace();
+ callbackContext.error("Parameters error.");
+ return;
+ }
+
+ eventCallbackMap.put(sequence, callbackContext);
+ JPushInterface.setMobileNumber(mContext,sequence, number);
+ }
+
private boolean isValidHour(int hour) {
return !(hour < 0 || hour > 23);
}
diff --git a/www/JPushPlugin.js b/www/JPushPlugin.js
index 6a6d369..66e8b32 100644
--- a/www/JPushPlugin.js
+++ b/www/JPushPlugin.js
@@ -482,6 +482,20 @@ JPushPlugin.prototype.setBadgeNumber = function(badgeNumb) {
}
};
+/**
+ * 设置手机号。
+ *
+ * @param params = { 'sequence': number, 'mobileNumber': string }
+ */
+ JPushPlugin.prototype.setMobileNumber = function(
+ params,
+ successCallback,
+ errorCallback
+) {
+ this.callNative("setMobileNumber", [params], successCallback, errorCallback);
+
+};
+
if (!window.plugins) {
window.plugins = {};
}