fix push notificaiton and add open notificaiotn evet

This commit is contained in:
zhangqinghe 2014-07-10 14:57:03 +08:00
parent 34857a1eea
commit 7cc3239e1b
3 changed files with 48 additions and 8 deletions

View File

@ -74,6 +74,17 @@ public class JPushPlugin extends CordovaPlugin {
return data; return data;
} }
private static JSONObject openNotificationObject(String alert,
Map<String, String> extras){
JSONObject data = new JSONObject();
try {
data.put("alert", alert);
data.put("extras", new JSONObject(extras));
} catch (JSONException e) {
}
return data;
}
static void transmitPush(String message, Map<String, String> extras) { static void transmitPush(String message, Map<String, String> extras) {
if (instance == null) { if (instance == null) {
return; return;
@ -90,7 +101,22 @@ public class JPushPlugin extends CordovaPlugin {
} }
} }
static void transmitOpen(String alert, Map<String, String> extras) {
if (instance == null) {
return;
}
JSONObject data = openNotificationObject(alert, extras);
String js = String
.format("window.plugins.jPushPlugin.openNotificationCallback(%s);",
data.toString());
try {
instance.webView.sendJavascript(js);
} catch (NullPointerException e) {
} catch (Exception e) {
}
}
@Override @Override
public boolean execute(final String action, final JSONArray data, public boolean execute(final String action, final JSONArray data,
final CallbackContext callbackContext) throws JSONException { final CallbackContext callbackContext) throws JSONException {
@ -348,10 +374,10 @@ public class JPushPlugin extends CordovaPlugin {
.format("cordova.fireDocumentEvent('jpush.setTagsWithAlias',%s)", .format("cordova.fireDocumentEvent('jpush.setTagsWithAlias',%s)",
data.toString()); data.toString());
instance.webView.sendJavascript(jsEvent); instance.webView.sendJavascript(jsEvent);
String js = String // String js = String
.format("window.plugins.jPushPlugin.pushCallback('%s');", // .format("window.plugins.jPushPlugin.pushCallback('%s');",
data.toString()); // data.toString());
instance.webView.sendJavascript(js); // instance.webView.sendJavascript(js);
} catch (JSONException e) { } catch (JSONException e) {

View File

@ -50,6 +50,8 @@ public class MyReceiver extends BroadcastReceiver {
JPushPlugin.notificationAlert = alert; JPushPlugin.notificationAlert = alert;
JPushPlugin.notificationExtras = extras; JPushPlugin.notificationExtras = extras;
JPushPlugin.transmitOpen(alert, extras);
context.startActivity(launch); context.startActivity(launch);
} }
private Map<String, String> getNotificationExtras(Intent intent) { private Map<String, String> getNotificationExtras(Intent intent) {

View File

@ -80,10 +80,22 @@ JPushPlugin.prototype.pushCallback = function(data){
try{ try{
console.log(data); console.log(data);
var bToObj=JSON.parse(data); var bToObj=JSON.parse(data);
var code = bToObj.resultCode; var message = bToObj.message;
var tags = bToObj.resultTags; var extras = bToObj.extras;
var alias = bToObj.resultAlias; console.log("JPushPlugin:pushCallback--message is "+message+" extras is "+extras );
console.log("JPushPlugin:callBack--code is "+code+" tags is "+tags + " alias is "+alias); }
catch(exception){
console.log(exception);
}
}
//
JPushPlugin.prototype.openNotificationCallback = function(data){
try{
console.log(data);
var bToObj = JSON.parse(data);
var alert = bToObj.alert;
var extras = bToObj.extras;
console.log("JPushPlugin:openNotificationCallback--alert is "+code+" extras is "+extras);
} }
catch(exception){ catch(exception){
console.log(exception); console.log(exception);