From 1af99fe4bf2f3bdf8cace97daef4dd6102ac43c6 Mon Sep 17 00:00:00 2001 From: zhangqinghe Date: Tue, 22 Jul 2014 18:51:48 +0800 Subject: [PATCH] add message in app --- src/ios/Plugins/JPushPlugin.m | 39 +++++++++++++++++++++--- www/JPushPlugin.js | 56 ++++++++++++++++------------------- 2 files changed, 61 insertions(+), 34 deletions(-) diff --git a/src/ios/Plugins/JPushPlugin.m b/src/ios/Plugins/JPushPlugin.m index 3a5aeba..b5d6ca5 100644 --- a/src/ios/Plugins/JPushPlugin.m +++ b/src/ios/Plugins/JPushPlugin.m @@ -11,11 +11,24 @@ @implementation JPushPlugin +- (CDVPlugin*)initWithWebView:(UIWebView*)theWebView{ + if (self=[super initWithWebView:theWebView]) { + + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + [defaultCenter addObserver:self + selector:@selector(networkDidReceiveMessage:) + name:kAPNetworkDidReceiveMessageNotification + object:nil]; + + } + return self; +} + -(void)setTagsWithAlias:(CDVInvokedUrlCommand*)command{ NSArray *arguments=command.arguments; if (!arguments||[arguments count]<2) { - [self writeJavascript:[NSString stringWithFormat:@"window.plugins.jPushPlugin.pushCallback('%@')",@""]]; +// [self writeJavascript:[NSString stringWithFormat:@"window.plugins.jPushPlugin.pushCallback('%@')",@""]]; return ; } NSString *alias=[arguments objectAtIndex:0]; @@ -51,8 +64,8 @@ -(void)getRegistrationID:(CDVInvokedUrlCommand*)command{ - NSString* registratonID = [APService registrionID]; - CDVPluginResult *result=[self pluginResultForValue:registratonID]; + NSString* registrationID = [APService registrionID]; + CDVPluginResult *result=[self pluginResultForValue:registrationID]; if (result) { [self succeedWithPluginResult:result withCallbackID:command.callbackId]; } else { @@ -78,7 +91,7 @@ dispatch_async(dispatch_get_main_queue(), ^{ [self.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.setTagsWithAlias',%@)",jsonString]]; - [self writeJavascript:[NSString stringWithFormat:@"window.plugins.jPushPlugin.pushCallback('%@')",jsonString]]; +// [self writeJavascript:[NSString stringWithFormat:@"window.plugins.jPushPlugin.pushCallback('%@')",jsonString]]; }); } @@ -141,5 +154,23 @@ return result; } +- (void)networkDidReceiveMessage:(NSNotification *)notification { + + NSDictionary *userInfo = [notification userInfo]; + NSLog(@"%@",userInfo); + + NSError *error; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:userInfo options:0 error:&error]; + NSString *jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding]; + + NSLog(@"%@",jsonString); + + dispatch_async(dispatch_get_main_queue(), ^{ + + [self writeJavascript:[NSString stringWithFormat:@"window.plugins.jPushPlugin.receiveMessageIniOSCallback('%@')",jsonString]]; + + }); + +} @end diff --git a/www/JPushPlugin.js b/www/JPushPlugin.js index f35ab35..5cd5912 100644 --- a/www/JPushPlugin.js +++ b/www/JPushPlugin.js @@ -1,5 +1,3 @@ -var JPushPlugin = function(){ -}; JPushPlugin.prototype.isPlatformIOS = function(){ return device.platform == "iPhone" || device.platform == "iPad" || device.platform == "iPod touch" || device.platform == "iOS" @@ -76,41 +74,39 @@ JPushPlugin.prototype.setAlias = function(data){ } } -JPushPlugin.prototype.recieveMessageInAndroidCallback = function(data){ - try{ - console.log("JPushPlugin:pushCallback--data:"+data); - var bToObj=JSON.parse(data); - var message = bToObj.message; - var extras = bToObj.extras; - - console.log(message); - console.log(extras['cn.jpush.android.MSG_ID']); - console.log(extras['cn.jpush.android.CONTENT_TYPE']); - console.log(extras['cn.jpush.android.EXTRA']); - - } - catch(exception){ - console.log("JPushPlugin:pushCallback "+exception); - } -} JPushPlugin.prototype.recieveMessageIniOSCallback = function(data){ try{ - console.log("JPushPlugin:pushCallback--data:"+data); - var bToObj=JSON.parse(data); - var message = bToObj.message; - var extras = bToObj.extras; - - console.log(message); - console.log(extras['cn.jpush.android.MSG_ID']); - console.log(extras['cn.jpush.android.CONTENT_TYPE']); - console.log(extras['cn.jpush.android.EXTRA']); - + console.log("JPushPlugin:recieveMessageIniOSCallback--data:"+data); + var bToObj = JSON.parse(data); + var content = bToObj.content; + console.log(content); } catch(exception){ - console.log("JPushPlugin:pushCallback "+exception); + console.log("JPushPlugin:recieveMessageIniOSCallback"+exception); } } // +JPushPlugin.prototype.openNotificationInAndroidCallback = function(data){ + try{ + console.log(data); + var bToObj = JSON.parse(data); + var alert = bToObj.alert; + var extras = bToObj.extras; + console.log(alert); + + console.log(extras['cn.jpush.android.MSG_ID']); + console.log(extras['app']); + console.log(extras['cn.jpush.android.NOTIFICATION_CONTENT_TITLE']); + console.log(extras['cn.jpush.android.EXTRA']); + console.log(extras['cn.jpush.android.PUSH_ID']); + console.log(extras['cn.jpush.android.NOTIFICATION_ID']); + console.log("JPushPlugin:openNotificationCallback is ready"); + } + catch(exception){ + console.log(exception); + } +} + JPushPlugin.prototype.openNotificationInAndroidCallback = function(data){ try{ console.log(data);