diff --git a/plugin.xml b/plugin.xml
index f0d364e..6edcf3d 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -14,13 +14,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
diff --git a/src/ios/.DS_Store b/src/ios/.DS_Store
new file mode 100644
index 0000000..176357b
Binary files /dev/null and b/src/ios/.DS_Store differ
diff --git a/src/ios/Plugins/.DS_Store b/src/ios/Plugins/.DS_Store
new file mode 100644
index 0000000..3f903a3
Binary files /dev/null and b/src/ios/Plugins/.DS_Store differ
diff --git a/src/ios/Plugins/JPushPlugin.h b/src/ios/Plugins/JPushPlugin.h
new file mode 100644
index 0000000..ad9b2c6
--- /dev/null
+++ b/src/ios/Plugins/JPushPlugin.h
@@ -0,0 +1,18 @@
+//
+// PushTalkPlugin.h
+// PushTalk
+//
+// Created by zhangqinghe on 13-12-13.
+//
+//
+
+#import
+
+@interface JPushPlugin : CDVPlugin{
+
+}
+
+-(void)setTagsWithAlias:(CDVInvokedUrlCommand*)command;
+-(void)setTags:(CDVInvokedUrlCommand*)command;
+-(void)setAlias:(CDVInvokedUrlCommand*)command;
+@end
diff --git a/src/ios/Plugins/JPushPlugin.m b/src/ios/Plugins/JPushPlugin.m
new file mode 100644
index 0000000..df41e24
--- /dev/null
+++ b/src/ios/Plugins/JPushPlugin.m
@@ -0,0 +1,77 @@
+//
+// PushTalkPlugin.m
+// PushTalk
+//
+// Created by zhangqinghe on 13-12-13.
+//
+//
+
+#import "JPushPlugin.h"
+#import "APService.h"
+
+@implementation JPushPlugin
+
+-(void)setTagsWithAlias:(CDVInvokedUrlCommand*)command{
+
+ NSArray *arguments=command.arguments;
+ if (!arguments||[arguments count]<2) {
+ [self writeJavascript:[NSString stringWithFormat:@"window.plugins.jPushPlugin.pushCallback('%@')",@""]];
+ return ;
+ }
+ NSString *tags=[arguments objectAtIndex:0];
+ NSString *alias=[arguments objectAtIndex:1];
+ NSArray *arrayTags=[tags componentsSeparatedByString:@","];
+ // NSArray *tags=[arguments subarrayWithRange:range];
+ [APService setTags:[NSSet setWithArray:arrayTags]
+ alias:alias
+ callbackSelector:@selector(tagsWithAliasCallback:tags:alias:)
+ object:self];
+ //[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+}
+
+-(void)setTags:(CDVInvokedUrlCommand *)command{
+
+ //CDVPluginResult *pluginResult=nil;
+
+ NSArray *arguments=[command arguments];
+ NSString *tags=[arguments objectAtIndex:0];
+
+ NSArray *array=[tags componentsSeparatedByString:@","];
+ [APService setTags:[NSSet setWithArray:array]
+ callbackSelector:@selector(tagsWithAliasCallback:tags:alias:)
+ object:self];
+ //[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+
+}
+
+-(void)setAlias:(CDVInvokedUrlCommand *)command{
+
+ CDVPluginResult *pluginResult=nil;
+
+ NSArray *arguments=[command arguments];
+ [APService setAlias:[arguments objectAtIndex:0]
+ callbackSelector:@selector(tagsWithAliasCallback:tags:alias:)
+ object:self];
+ [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+
+}
+
+-(void)tagsWithAliasCallback:(int)resultCode tags:(NSSet *)tags alias:(NSString *)alias{
+
+
+ NSLog(@"recode is %d tags is %@ alias %@",resultCode,tags,alias);
+ NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithInt:resultCode],@"resultCode",
+ tags==nil?[NSNull null]:[tags allObjects],@"resultTags",
+ alias==nil?[NSNull null]:alias,@"resultAlias",nil];
+ NSError *error;
+ NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
+ NSString *jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
+ dispatch_async(dispatch_get_main_queue(), ^{
+
+ [self writeJavascript:[NSString stringWithFormat:@"window.plugins.jPushPlugin.pushCallback('%@')",jsonString]];
+ });
+}
+
+
+@end
diff --git a/src/ios/PushConfig.plist b/src/ios/PushConfig.plist
new file mode 100644
index 0000000..5d8a46d
--- /dev/null
+++ b/src/ios/PushConfig.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ APP_KEY
+ 7d431e42dfa6a6d693ac2d04
+ CHANNEL
+ Subscription
+
+
diff --git a/src/ios/lib/.DS_Store b/src/ios/lib/.DS_Store
new file mode 100644
index 0000000..eae3208
Binary files /dev/null and b/src/ios/lib/.DS_Store differ
diff --git a/src/ios/lib/APService.h b/src/ios/lib/APService.h
new file mode 100644
index 0000000..51d36e7
--- /dev/null
+++ b/src/ios/lib/APService.h
@@ -0,0 +1,39 @@
+//
+// APService.h
+// APService
+//
+// Created by JPush on 12-8-15.
+// Copyright (c) 2012年 HXHG. All rights reserved.
+// Version: 1.6.2
+
+#import
+
+extern NSString * const kAPNetworkDidSetupNotification; // 建立连接
+extern NSString * const kAPNetworkDidCloseNotification; // 关闭连接
+extern NSString * const kAPNetworkDidRegisterNotification; // 注册成功
+extern NSString * const kAPNetworkDidLoginNotification; // 登录成功
+extern NSString * const kAPNetworkDidReceiveMessageNotification; // 收到消息(非APNS)
+extern NSString * const kAPServiceErrorNotification; // 错误提示
+
+
+@interface APService : NSObject
+
+// 以下四个接口是必须调用的
++ (void)setupWithOption:(NSDictionary *)launchingOption; // 初始化
++ (void)registerForRemoteNotificationTypes:(int)types; // 注册APNS类型
++ (void)registerDeviceToken:(NSData *)deviceToken; // 向服务器上报Device Token
++ (void)handleRemoteNotification:(NSDictionary *)remoteInfo; // 处理收到的APNS消息,向服务器上报收到APNS消息
+
+// 下面的接口是可选的
+// 设置标签和(或)别名(若参数为nil,则忽略;若是空对象,则清空;详情请参考文档:http://docs.jpush.cn/pages/viewpage.action?pageId=3309913)
++ (void)setTags:(NSSet *)tags alias:(NSString *)alias DEPRECATED_ATTRIBUTE;
++ (void)setTags:(NSSet *)tags alias:(NSString *)alias callbackSelector:(SEL)cbSelector target:(id)theTarget;
++ (void)setTags:(NSSet *)tags alias:(NSString *)alias callbackSelector:(SEL)cbSelector object:(id)theTarget;
++ (void)setTags:(NSSet *)tags callbackSelector:(SEL)cbSelector object:(id)theTarget;
++ (void)setAlias:(NSString *)alias callbackSelector:(SEL)cbSelector object:(id)theTarget;
+// 用于过滤出正确可用的tags,如果总数量超出最大限制则返回最大数量的靠前的可用tags
++ (NSSet*)filterValidTags:(NSSet*)tags;
+
++ (NSString *)openUDID; // UDID
+
+@end
diff --git a/src/ios/lib/libPushSDK.a b/src/ios/lib/libPushSDK.a
new file mode 100644
index 0000000..51fe738
Binary files /dev/null and b/src/ios/lib/libPushSDK.a differ
diff --git a/www/JPushPlugin.js b/www/JPushPlugin.js
index 8334285..b45f73f 100644
--- a/www/JPushPlugin.js
+++ b/www/JPushPlugin.js
@@ -1,82 +1,69 @@
+
var JPushPlugin = function(){
-
+
};
-JPushPlugin.prototype.error_callback = function (msg) {
- console.log("Javascript Callback Error: " + msg)
+JPushPlugin.prototype.call_native = function ( name, args) {
+ console.log("JPushPlugin.call_native:"+name);
+ ret = cordova.exec(null,
+ null,
+ 'JPushPlugin',
+ name,
+ args);
+ return ret;
}
-JPushPlugin.prototype.call_native = function (callback, name, args) {
- if(arguments.length == 2) {
- args = []
- }
- ret = cordova.exec(
- callback,
- this.error_callback,
- 'JPushPlugin',
- name,
- args);
- return ret;
+JPushPlugin.prototype.setTagsWithAlias = function (tags,alias) {
+
+ console.log("JPushPlugin:setTagsWithAlias");
+ if(tags==null){
+ this.setAlias(alias);
+ return;
+ }
+ if(alias==null){
+ this.setTags(tags);
+ return;
+ }
+ var arrayTagWithAlias=[tags];
+ arrayTagWithAlias.unshift(alias);
+ this.call_native( "setTagsWithAlias", arrayTagWithAlias);
}
-
-JPushPlugin.prototype.setTags = function (tags, callback) {
- this.call_native(callback, "setTags", [tags])
+JPushPlugin.prototype.setTags = function (data) {
+
+ console.log("JPushPlugin:setTags");
+ try{
+ this.call_native("setTags", [data]);
+ }
+ catch(exception){
+ alert(exception);
+ }
}
-
-JPushPlugin.prototype.setAlias = function (alias, callback) {
- this.call_native(callback, "setAlias", [alias])
+JPushPlugin.prototype.setAlias = function (data) {
+
+ console.log("JPushPlugin:setAlias");
+ try{
+
+ this.call_native("setAlias", [data]);
+ }
+ catch(exception){
+
+ alert(exception);
+ }
}
-
JPushPlugin.prototype.pushCallback = function (data) {
- var strArr = [data]
- var str = strArr[0].message
- document.getElementById('tarea').value=str
-
+ try{
+ var bToObj=JSON.parse(data);
+ var code = bToObj.resultCode;
+ var tags = bToObj.resultTags;
+ var alias = bToObj.resultAlias;
+ console.log("JPushPlugin:callBack--code is "+code+" tags is "+tags + " alias is "+alias);
+ }
+ catch(exception){
+ alert(exception);
+ }
}
-
-JPushPlugin.prototype.getNotification = function (callback) {
- this.call_native(callback, "getNotification");
-}
-
-JPushPlugin.prototype.setBasicPushNotificationBuilder = function(callback){
- this.call_native(callback,"setBasicPushNotificationBuilder");
-}
-
-JPushPlugin.prototype.setCustomPushNotificationBuilder = function(callback){
- this.call_native(callback,"setCustomPushNotificationBuilder");
-}
-
-JPushPlugin.prototype.stopPush = function(callback){
- this.call_native(callback,"stopPush");
-}
-
-JPushPlugin.prototype.resumePush = function(callback){
- this.call_native(callback,"resumePush");
-}
-
-JPushPlugin.prototype.clearAllNoticication = function(callback){
- this.call_native(callback,"clearAllNotification");
-}
-
-JPushPlugin.prototype.setLatestNotificationNum = function(num,callback){
- this.call_native(callback,"setLatestNotificationNum",[num]);
-}
-
-JPushPlugin.prototype.isPushStopped = function(callback){
- this.call_native(callback,"isPushStopped")
-}
-
-JPushPlugin.prototype.init = function(callback){
- this.call_natvie(callback,"init");
-}
-
-JPushPlugin.prototype.setDebugable = function(mode,callback){
- this.call_native(callback,"setDebugable",[mode]);
-}
-
-
-
if(!window.plugins) {
- window.plugins = {};
+ window.plugins = {};
}
if(!window.plugins.jPushPlugin){
- window.plugins.jPushPlugin = new JPushPlugin();
-}
\ No newline at end of file
+ window.plugins.jPushPlugin = new JPushPlugin();
+}
+module.exports = new JPushPlugin();