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 = {}; }