Merge pull request #139 from jpush/dev

This commit is contained in:
Hevin 2016-03-30 10:52:17 +08:00
commit 661b216359
5 changed files with 46 additions and 47 deletions

View File

@ -134,20 +134,29 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
window.plugins.jPushPlugin.startLogPageView (pageName)
window.plugins.jPushPlugin.stopLogPageView (pageName)
window.plugins.jPushPlugin.beginLogPageView (pageName,duration)
+ 设置Badge
window.plugins.jPushPlugin.setBadge(value)
window.plugins.jPushPlugin.resetBadge()
window.plugins.jPushPlugin.setApplicationIconBadgeNumber(badge)
window.plugins.JPushPlugin.getApplicationIconBadgeNumber(callback)
+ 本地通知
+ 后续版本加入
window.plugins.JPushPlugin.addLocalNotificationForIOS(delayTime, content, badge, notificationID, extras)
window.plugins.JPushPlugin.deleteLocalNotificationWithIdentifierKeyInIOS()
window.plugins.JPushPlugin.clearAllLocalNotifications()
+ 日志等级设置
window.plugins.jPushPlugin.setDebugModeFromIos ()
window.plugins.jPushPlugin.setLogOFF()
window.plugins.JPushPlugin.setCrashLogON()
+ 地理位置上报
window.plugins.JPushPlugin.setLocation(latitude, longitude)
[iOS API详细说明](document/iOS_detail_api.md)

View File

@ -87,14 +87,14 @@ JPush SDK 会恢复正常的默认行为。(因为保存在本地的状态数
+ callback 回调函数用来通知JPush的推送服务是否开启
####代码示例
window.plugins.jPushPlugin.resumePush(callback)
var onCallback = function(data) {
if(data>0){
window.plugins.jPushPlugin.resumePush(callback)
var onCallback = function(data) {
if(data>0){
//开启
}else{
}else{
//关闭
}
}
}
##获取 RegistrationID API
@ -136,7 +136,7 @@ RegistrationID 定义
这几个 API 可以在 App 里任何地方调用。
别名 alias
**别名 alias**
为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。
@ -148,7 +148,7 @@ RegistrationID 定义
举例:在一个用户要登录的游戏中,可能设置别名为 userid。游戏运营时发现该用户 3 天没有玩游戏了,则根据 userid 调用服务器端API发通知到客户端提醒用户。
标签 tag
**标签 tag**
为安装了应用程序的用户,打上标签。其目的主要是方便开发者根据标签,来批量下发 Push 消息。
@ -164,10 +164,6 @@ RegistrationID 定义
JPushPlugin.prototype.setTags = function(tags)
JPushPlugin.prototype.setAlias = function(alias)
####使用平台
android iOS
#### 参数说明
* tags
* 参数类型为数组
@ -207,17 +203,18 @@ android iOS
|Code|描述|详细解释|
|-|-|-|
|6001| 无效的设置tag/alias 不应参数都为 null||
|6002| 设置超时| 建议重试|
|6003| alias| 字符串不合法 有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字。|
|6004| alias超长。最多 40个字节 中文 UTF-8 是 3 个字节|
|6005| 某一个 tag 字符串不合法| 有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字。|
|6006| 某一个 tag 超长。|一个 tag 最多 40个字节 中文 UTF-8 是 3 个字节|
|6007| tags 数量超出限制。最多 100个| 这是一台设备的限制。一个应用全局的标签数量无限制。|
|6008| tag/alias 超出总长度限制。|总长度最多 1K 字节|
|6011| 10s内设置tag或alias大于3次| 短时间内操作过于频繁|
|Code|描述 |详细解释 |
|----|:----------------------------------------|:--------|
|6001|无效的设置tag/alias 不应参数都为 null | |
|6002|设置超时 |建议重试|
|6003|alias 字符串不合法 |有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字。|
|6004|alias超长。 |最多 40个字节 中文 UTF-8 是 3 个字节|
|6005|某一个 tag 字符串不合法 |有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字。|
|6006|某一个 tag 超长 |一个 tag 最多 40个字节 中文 UTF-8 是 3 个字节|
|6007|tags 数量超出限制。最多 100个 |这是一台设备的限制。一个应用全局的标签数量无限制。|
|6008|tag/alias 超出总长度限制 |总长度最多 1K 字节|
|6011|10s内设置tag或alias大于3次 |短时间内操作过于频繁|
### 获取点击通知内容
@ -264,6 +261,8 @@ ps点击通知后传递的json object 保存在window.plugins.jPushPlugin.ope
"sound":"default",
"alert":"今天去哪儿"
},
"key1":"value1",
"key2":"value2",
"_j_msgid":154604475
}
@ -312,6 +311,8 @@ ps点击通知后传递的json object 保存在window.plugins.jPushPlugin.rec
"sound":"default",
"alert":"今天去哪儿"
},
"key1":"value1",
"key2":"value2",
"_j_msgid":154604475
}

View File

@ -95,7 +95,6 @@
};
var initiateUI = function () {
try {
window.plugins.jPushPlugin.init();
getRegistrationID();

View File

@ -68,7 +68,7 @@ public class JPushPlugin extends CordovaPlugin {
private static String TAG = "JPushPlugin";
private static boolean shouldCacheMsg = false;
private static boolean isStatisticsOpened = true; // 是否开启统计分析功能
private static boolean isStatisticsOpened = false; // 是否开启统计分析功能
public static String notificationAlert;
public static Map<String, Object> notificationExtras = new HashMap<String, Object>();
@ -106,7 +106,7 @@ public class JPushPlugin extends CordovaPlugin {
public void onPause(boolean multitasking) {
Log.i(TAG, "---------------- onPause");
shouldCacheMsg = true;
if (isStatisticsOpened) {
if (isStatisticsOpened && multitasking) {
JPushInterface.onPause(cordovaActivity);
}
}
@ -116,7 +116,7 @@ public class JPushPlugin extends CordovaPlugin {
Log.i(TAG, "---------------- onResume" + "-"
+ JPushPlugin.openNotificationAlert + "-"
+ JPushPlugin.notificationAlert);
if (isStatisticsOpened) {
if (isStatisticsOpened && multitasking) {
JPushInterface.onResume(cordovaActivity);
}
if (JPushPlugin.openNotificationAlert != null) {

View File

@ -9,30 +9,20 @@
#import "AppDelegate+JPush.h"
#import "JPushPlugin.h"
#import "JPUSHService.h"
#import <objc/runtime.h>
@implementation AppDelegate (JPush)
+(void)load{
Method origin;
Method swizzle;
origin=class_getInstanceMethod([self class],@selector(init));
swizzle=class_getInstanceMethod([self class], @selector(init_plus));
method_exchangeImplementations(origin, swizzle);
}
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[JPushPlugin setLaunchOptions:launchOptions];
-(instancetype)init_plus{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidLaunch:)
name:@"UIApplicationDidFinishLaunchingNotification"
object:nil];
return [self init_plus];
}
-(void)applicationDidLaunch:(NSNotification*)notification{
if (notification) {
[JPushPlugin setLaunchOptions:notification.userInfo];
}
//cordova didFinishLaunchingWithOptions
CGRect screenBounds = [[UIScreen mainScreen] bounds];
self.window = [[UIWindow alloc] initWithFrame:screenBounds];
self.viewController = [[CDVViewController alloc] init];
self.window.rootViewController = self.viewController;
self.window.autoresizesSubviews = YES;
[self.window makeKeyAndVisible];
return YES;
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {