mirror of
https://github.com/jpush/jpush-phonegap-plugin.git
synced 2025-02-21 04:32:59 +08:00
Merge branch 'dev'
This commit is contained in:
commit
4f8288107e
78
README.md
78
README.md
@ -13,13 +13,13 @@
|
||||
|
||||
> QQ 交流群:413602425。
|
||||
|
||||
## 集成步骤
|
||||
## Install
|
||||
|
||||
- 通过 Cordova Plugins 安装,要求 Cordova CLI 5.0+:
|
||||
|
||||
cordova plugin add jpush-phonegap-plugin --variable API_KEY=your_jpush_appkey
|
||||
|
||||
- 或者直接通过 url 安装:
|
||||
- 或直接通过 url 安装:
|
||||
|
||||
cordova plugin add https://github.com/jpush/jpush-phonegap-plugin.git --variable API_KEY=your_jpush_appkey
|
||||
|
||||
@ -28,61 +28,47 @@
|
||||
cordova plugin add Your_Plugin_Path --variable API_KEY=your_jpush_appkey
|
||||
|
||||
|
||||
## Demo
|
||||
## Usage
|
||||
### API
|
||||
- [公共 API](/doc/Common_detail_api.md)
|
||||
- [iOS API](/doc/iOS_API.md)
|
||||
- [Android API](/doc/Android_detail_api.md)
|
||||
|
||||
### Demo
|
||||
插件项目中包含一个简单的 Demo。若想参考,可以在 */example* 文件夹内找到并拷贝以下文件:
|
||||
|
||||
src/example/index.html -> www/index.html
|
||||
src/example/css/* -> www/css
|
||||
src/example/js/* -> www/js
|
||||
|
||||
## 关于 PhoneGap build 云服务
|
||||
example/index.html -> www/index.html
|
||||
example/css/* -> www/css
|
||||
example/js/* -> www/js
|
||||
|
||||
### 关于 PhoneGap build 云服务
|
||||
该项目基于 Cordova 实现,目前无法使用 PhoneGap build 云服务进行打包,建议使用本地环境进行打包。
|
||||
|
||||
## API 说明
|
||||
|
||||
插件的 API 在 JPushPlugin.js 文件中,该文件的具体位置如下:
|
||||
### Android
|
||||
[Project]/assets/www/plugins/cn.jpush.phonegap.JPushPlugin/www
|
||||
|
||||
### iOS
|
||||
[Project]/www/plugins/cn.jpush.phonegap.JPushPlugin/www
|
||||
|
||||
### 具体的 API 请参考:
|
||||
|
||||
- [公共 API](/doc/Common_detail_api.md)。
|
||||
|
||||
- [iOS API](/doc/iOS_API.md)。
|
||||
|
||||
- [Android API](/doc/Android_detail_api.md)。
|
||||
|
||||
|
||||
## 常见问题
|
||||
|
||||
若要使用 CLI 来编译项目,注意应使用 cordova compile 而不是 cordova build 命令,因为如果修改了插件安装时默认写入到 AndroidManifest.xml
|
||||
中的代码,cordova build 可能会导致对 AndroidManifest.xml 的修改。
|
||||
Cordova CLI 的具体用法可参考 [Cordova CLI 官方文档](https://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html)。
|
||||
## FAQ
|
||||
> 如果遇到了疑问,请优先参考 Demo 和 API 文档。若还无法解决,可访问[极光社区](http://community.jiguang.cn/)或 [Issues](https://github.com/jpush/jpush-phonegap-plugin/issues) 提问。
|
||||
|
||||
### Android
|
||||
|
||||
- Eclipse 中 import PhoneGap 工程之后出现:*Type CallbackContext cannot be resolved to a type*。
|
||||
|
||||
解决方案:Eclipse 中右键单击工程名,Build Path -> Config Build Path -> Projects -> 选中工程名称 -> CordovaLib -> 点击 add。
|
||||
#### 在 Eclipse 中 import 工程之后出现:*Type CallbackContext cannot be resolved to a type*。
|
||||
右键单击工程名 -> Build Path -> Config Build Path -> Projects -> 选中工程名称 -> CordovaLib -> 点击 add。
|
||||
|
||||
### iOS
|
||||
#### PushConfig.plist 文件中的字段都是什么意思?
|
||||
- APP_KEY:应用标识。
|
||||
- CHANNEL:渠道标识。
|
||||
- IsProduction:是否生产环境。
|
||||
- IsIDFA:是否使用 IDFA 启动 SDK。
|
||||
|
||||
- 设置 PushConfig.plist:
|
||||
- APP_KEY:应用标识。
|
||||
- CHANNEL:渠道标识。
|
||||
- IsProduction:是否生产环境。
|
||||
- IsIDFA:是否使用 IDFA 启动 SDK。
|
||||
#### 收不到推送了。
|
||||
请首先按照正确方式再次配置证书、描述文件,具体可参考 [iOS 证书设置指南](http://docs.jpush.io/client/ios_tutorials/#ios_1)。
|
||||
|
||||
|
||||
- 收不到推送:
|
||||
请首先按照正确方式再次配置证书、描述文件,具体可参考 [iOS 证书设置指南](http://docs.jpush.io/client/ios_tutorials/#ios_1)。
|
||||
## Support
|
||||
- QQ 群:413602425
|
||||
- [JPush 官网文档](http://docs.jpush.io/)
|
||||
- [极光社区](http://community.jiguang.cn/)
|
||||
|
||||
## Contribute
|
||||
Please contribute! [Look at the issues](https://github.com/jpush/jpush-phonegap-plugin/issues).
|
||||
|
||||
## 更多
|
||||
- QQ 群:413602425;
|
||||
- [JPush 官网文档](http://docs.jpush.io/);
|
||||
- 如有问题可访问[极光社区](http://community.jiguang.cn/)。
|
||||
## License
|
||||
MIT © [JiGuang](/license)
|
||||
|
21
license
Normal file
21
license
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) JiGuang <support@jpush.cn> (jiguang.cn)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "jpush-phonegap-plugin",
|
||||
"version": "2.2.5",
|
||||
"version": "2.2.6",
|
||||
"description": "JPush for cordova plugin",
|
||||
"cordova": {
|
||||
"id": "jpush-phonegap-plugin",
|
||||
@ -30,8 +30,8 @@
|
||||
"peerDependencies": {
|
||||
"cordova-plugin-device": ">=1.0.0"
|
||||
},
|
||||
"author": "jpush",
|
||||
"license": "Apache 2.0 License",
|
||||
"author": "JiGuang",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/jpush/jpush-phonegap-plugin/issues"
|
||||
},
|
||||
|
20
plugin.xml
20
plugin.xml
@ -2,13 +2,13 @@
|
||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
id="jpush-phonegap-plugin"
|
||||
version="2.2.4">
|
||||
version="2.2.5">
|
||||
|
||||
<name>JPush Plugin</name>
|
||||
<description>JPush for cordova plugin</description>
|
||||
<author>JPush</author>
|
||||
<keywords>JPush,push</keywords>
|
||||
<license>Apache 2.0 License</license>
|
||||
<license>MIT License</license>
|
||||
|
||||
<preference name="API_KEY" />
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
<source-file src="src/ios/Plugins/JPushPlugin.m" />
|
||||
|
||||
<header-file src="src/ios/lib/JPUSHService.h" />
|
||||
<source-file src="src/ios/lib/jpush-ios-2.1.8.a" framework="true" />
|
||||
<source-file src="src/ios/lib/jpush-ios-2.1.9.a" framework="true" />
|
||||
<header-file src="src/ios/Plugins/AppDelegate+JPush.h" />
|
||||
<source-file src="src/ios/Plugins/AppDelegate+JPush.m" />
|
||||
<resource-file src="src/ios/PushConfig.plist" />
|
||||
@ -48,6 +48,8 @@
|
||||
<framework src="Security.framework" weak="true" />
|
||||
<framework src="libz.tbd" weak="true" />
|
||||
<framework src="AdSupport.framework" weak="true" />
|
||||
<framework src="UserNotifications.framework" weak="true" />
|
||||
|
||||
|
||||
<config-file target="*PushConfig.plist" parent="APP_KEY">
|
||||
<string>$API_KEY</string>
|
||||
@ -166,12 +168,12 @@
|
||||
<meta-data android:name="JPUSH_APPKEY" android:value="$API_KEY" />
|
||||
</config-file>
|
||||
|
||||
<source-file src="src/android/jpush-android-2.1.7.jar" target-dir="libs" />
|
||||
<source-file src="src/android/armeabi/libjpush217.so" target-dir="libs/armeabi" />
|
||||
<source-file src="src/android/armeabi-v7a/libjpush217.so" target-dir="libs/armeabi-v7a" />
|
||||
<source-file src="src/android/arm64-v8a/libjpush217.so" target-dir="libs/arm64-v8a" />
|
||||
<source-file src="src/android/x86/libjpush217.so" target-dir="libs/x86" />
|
||||
<source-file src="src/android/x86_64/libjpush217.so" target-dir="libs/x86_64" />
|
||||
<source-file src="src/android/jpush-android-2.1.9.jar" target-dir="libs" />
|
||||
<source-file src="src/android/armeabi/libjpush219.so" target-dir="libs/armeabi" />
|
||||
<source-file src="src/android/armeabi-v7a/libjpush219.so" target-dir="libs/armeabi-v7a" />
|
||||
<source-file src="src/android/arm64-v8a/libjpush219.so" target-dir="libs/arm64-v8a" />
|
||||
<source-file src="src/android/x86/libjpush219.so" target-dir="libs/x86" />
|
||||
<source-file src="src/android/x86_64/libjpush219.so" target-dir="libs/x86_64" />
|
||||
|
||||
<source-file src="src/android/MyReceiver.java" target-dir="src/cn/jpush/phonegap" />
|
||||
<source-file src="src/android/JPushPlugin.java" target-dir="src/cn/jpush/phonegap" />
|
||||
|
@ -89,10 +89,10 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
|
||||
@Override
|
||||
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
|
||||
super.initialize(cordova, webView);
|
||||
Log.i(TAG, "JPush initialize.");
|
||||
|
||||
Log.i(TAG, "---------------- initialize" + "-" + openNotificationAlert
|
||||
+ "-" + notificationAlert);
|
||||
super.initialize(cordova, webView);
|
||||
JPushInterface.init(cordova.getActivity().getApplicationContext());
|
||||
|
||||
cordovaActivity = cordova.getActivity();
|
||||
|
||||
|
Binary file not shown.
BIN
src/android/arm64-v8a/libjpush219.so
Normal file
BIN
src/android/arm64-v8a/libjpush219.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/android/armeabi-v7a/libjpush219.so
Normal file
BIN
src/android/armeabi-v7a/libjpush219.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/android/armeabi/libjpush219.so
Normal file
BIN
src/android/armeabi/libjpush219.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/android/jpush-android-2.1.9.jar
Normal file
BIN
src/android/jpush-android-2.1.9.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/android/x86/libjpush219.so
Normal file
BIN
src/android/x86/libjpush219.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/android/x86_64/libjpush219.so
Normal file
BIN
src/android/x86_64/libjpush219.so
Normal file
Binary file not shown.
@ -7,7 +7,9 @@
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
#import "JPUSHService.h"
|
||||
|
||||
@interface AppDelegate (JPush)
|
||||
|
||||
@interface AppDelegate (JPush) <JPUSHRegisterDelegate>
|
||||
-(void)registerForIos10RemoteNotification;
|
||||
@end
|
||||
|
@ -8,8 +8,11 @@
|
||||
|
||||
#import "AppDelegate+JPush.h"
|
||||
#import "JPushPlugin.h"
|
||||
#import "JPUSHService.h"
|
||||
#import <objc/runtime.h>
|
||||
#import <AdSupport/AdSupport.h>
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
|
||||
|
||||
|
||||
@implementation AppDelegate (JPush)
|
||||
|
||||
@ -24,12 +27,13 @@
|
||||
}
|
||||
|
||||
-(instancetype)init_plus{
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidLaunch:) name:@"UIApplicationDidFinishLaunchingNotification" object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidLaunch:) name:UIApplicationDidFinishLaunchingNotification object:nil];
|
||||
return [self init_plus];
|
||||
}
|
||||
|
||||
-(void)applicationDidLaunch:(NSNotification *)notification{
|
||||
if (notification) {
|
||||
[self registerForIos10RemoteNotification];
|
||||
[JPushPlugin setLaunchOptions:notification.userInfo];
|
||||
}
|
||||
}
|
||||
@ -62,4 +66,33 @@
|
||||
// [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
|
||||
}
|
||||
|
||||
-(void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler{
|
||||
|
||||
NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithDictionary:notification.request.content.userInfo];
|
||||
|
||||
[userInfo setValue:kJPushPluginiOS10ForegroundReceiveNotification forKey:@"JPushNotificationType"];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kJPushPluginiOS10ForegroundReceiveNotification object:userInfo];
|
||||
|
||||
completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert);
|
||||
}
|
||||
|
||||
-(void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler{
|
||||
NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithDictionary:response.notification.request.content.userInfo];
|
||||
[userInfo setValue:kJPushPluginiOS10ClickNotification forKey:@"JPushNotificationType"];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kJPushPluginiOS10ClickNotification object:userInfo];
|
||||
|
||||
completionHandler();
|
||||
}
|
||||
|
||||
-(void)registerForIos10RemoteNotification{
|
||||
if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {
|
||||
#ifdef NSFoundationVersionNumber_iOS_9_x_Max
|
||||
JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];
|
||||
entity.types = UNAuthorizationOptionAlert|UNAuthorizationOptionBadge|UNAuthorizationOptionSound;
|
||||
[JPUSHService registerForRemoteNotificationConfig:entity delegate:self];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -9,6 +9,9 @@
|
||||
#import <Cordova/CDV.h>
|
||||
|
||||
#define kJPushPluginReceiveNotification @"JPushPluginReceiveNofication"
|
||||
#define kJPushPluginiOS10ForegroundReceiveNotification @"kJPushPluginiOS10ForegroundReceiveNotification"
|
||||
#define kJPushPluginiOS10ClickNotification @"kJPushPluginiOS10ClickNotification"
|
||||
|
||||
|
||||
@interface JPushPlugin : CDVPlugin{
|
||||
|
||||
@ -67,7 +70,7 @@
|
||||
* jpush.setTagsWithAlias 设置标签、别名完成
|
||||
* jpush.receiveMessage 收到自定义消息
|
||||
* jpush.receiveNotification 前台收到推送
|
||||
* jpush.backgoundNotification 后台收到推送
|
||||
* jpush.backgroundNotification 后台收到推送
|
||||
*/
|
||||
|
||||
@end
|
||||
|
@ -10,6 +10,8 @@
|
||||
#import "JPUSHService.h"
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <AdSupport/AdSupport.h>
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
#import "AppDelegate+JPush.h"
|
||||
|
||||
static NSString *const JP_APP_KEY = @"APP_KEY";
|
||||
static NSString *const JP_APP_CHANNEL = @"CHANNEL";
|
||||
@ -18,6 +20,30 @@ static NSString *const JP_APP_ISIDFA = @"IsIDFA";
|
||||
static NSString *const JPushConfigFileName = @"PushConfig";
|
||||
static NSDictionary *_launchOptions = nil;
|
||||
|
||||
#define WEAK_SELF(weakSelf) __weak __typeof(&*self)weakSelf = self;
|
||||
|
||||
@implementation NSDictionary (JPush)
|
||||
-(NSString*)toJsonString{
|
||||
NSError *error;
|
||||
NSData *data = [NSJSONSerialization dataWithJSONObject:self options:0 error:&error];
|
||||
NSString *jsonString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
|
||||
return jsonString;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation NSString (JPush)
|
||||
-(NSDictionary*)toDictionary{
|
||||
NSError *error;
|
||||
NSData *jsonData = [self dataUsingEncoding:NSUTF8StringEncoding];
|
||||
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
|
||||
return dict;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface JPushPlugin()
|
||||
|
||||
@end
|
||||
|
||||
@implementation JPushPlugin
|
||||
|
||||
#pragma mark- 外部接口
|
||||
@ -29,22 +55,6 @@ static NSDictionary *_launchOptions = nil;
|
||||
[JPushPlugin registerForRemoteNotification];
|
||||
}
|
||||
|
||||
+(void)registerForRemoteNotification{
|
||||
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
|
||||
//可以添加自定义categories
|
||||
[JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
|
||||
UIUserNotificationTypeSound |
|
||||
UIUserNotificationTypeAlert)
|
||||
categories:nil];
|
||||
} else {
|
||||
//categories 必须为nil
|
||||
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
|
||||
UIRemoteNotificationTypeSound |
|
||||
UIRemoteNotificationTypeAlert)
|
||||
categories:nil];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)isPushStopped:(CDVInvokedUrlCommand*)command{
|
||||
NSNumber *result;
|
||||
if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]) {
|
||||
@ -92,19 +102,23 @@ static NSDictionary *_launchOptions = nil;
|
||||
name:kJPushPluginReceiveNotification
|
||||
object:nil];
|
||||
|
||||
if (_launchOptions) {
|
||||
NSDictionary *userInfo = [_launchOptions
|
||||
valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
|
||||
if ([userInfo count] >0) {
|
||||
NSError *error;
|
||||
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:userInfo options:0 error:&error];
|
||||
NSString *jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
|
||||
if (!error) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.openNotification',%@)",jsonString]];
|
||||
});
|
||||
[defaultCenter addObserver:self
|
||||
selector:@selector(networkDidReceiveNotification:)
|
||||
name:kJPushPluginiOS10ForegroundReceiveNotification
|
||||
object:nil];
|
||||
|
||||
}
|
||||
[defaultCenter addObserver:self
|
||||
selector:@selector(networkDidReceiveNotification:)
|
||||
name:kJPushPluginiOS10ClickNotification
|
||||
object:nil];
|
||||
|
||||
|
||||
if (_launchOptions) {
|
||||
NSDictionary *userInfo = [_launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
|
||||
if ([userInfo count] >0) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.openNotification',%@)",[userInfo toJsonString]]];
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@ -248,7 +262,14 @@ static NSDictionary *_launchOptions = nil;
|
||||
}
|
||||
|
||||
-(void)deleteLocalNotificationWithIdentifierKey:(CDVInvokedUrlCommand*)command{
|
||||
[JPUSHService deleteLocalNotificationWithIdentifierKey:(NSString*)command.arguments[0]];
|
||||
NSString *identifier = [command argumentAtIndex:0];
|
||||
if ([UIDevice currentDevice].systemVersion.floatValue >= 10.0) {
|
||||
JPushNotificationIdentifier *jpid = [JPushNotificationIdentifier new];
|
||||
jpid.identifiers = @[identifier];
|
||||
[JPUSHService removeNotification:jpid];
|
||||
}else{
|
||||
[JPUSHService deleteLocalNotificationWithIdentifierKey:identifier];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)clearAllLocalNotifications:(CDVInvokedUrlCommand*)command{
|
||||
@ -260,7 +281,22 @@ static NSDictionary *_launchOptions = nil;
|
||||
}
|
||||
|
||||
-(void)getUserNotificationSettings:(CDVInvokedUrlCommand*)command{
|
||||
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
|
||||
if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {
|
||||
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
||||
WEAK_SELF(weakSelf);
|
||||
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
|
||||
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
|
||||
dict[@"authorizationStatus"] = @(settings.authorizationStatus);
|
||||
dict[@"soundSetting"] = @(settings.soundSetting);
|
||||
dict[@"badgeSetting"] = @(settings.badgeSetting);
|
||||
dict[@"alertSetting"] = @(settings.alertSetting);
|
||||
dict[@"notificationCenterSetting"] = @(settings.notificationCenterSetting);
|
||||
dict[@"lockScreenSetting"] = @(settings.lockScreenSetting);
|
||||
dict[@"carPlaySetting"] = @(settings.carPlaySetting);
|
||||
dict[@"alertStyle"] = @(settings.alertStyle);
|
||||
[weakSelf handleResultWithValue:dict command:command];
|
||||
}];
|
||||
}else if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
|
||||
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSettings];
|
||||
UIUserNotificationType type = settings.types;
|
||||
NSNumber *number = [NSNumber numberWithInteger:type];
|
||||
@ -270,10 +306,9 @@ static NSDictionary *_launchOptions = nil;
|
||||
NSNumber *number = [NSNumber numberWithInteger:type];
|
||||
[self handleResultWithValue:number command:command];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#pragma mark- 内部方法
|
||||
#pragma mark - 内部方法
|
||||
+(void)setLaunchOptions:(NSDictionary *)theLaunchOptions{
|
||||
_launchOptions = theLaunchOptions;
|
||||
|
||||
@ -294,11 +329,6 @@ static NSDictionary *_launchOptions = nil;
|
||||
NSNumber * isProduction = [plistData valueForKey:JP_APP_ISPRODUCTION];
|
||||
NSNumber *isIDFA = [plistData valueForKey:JP_APP_ISIDFA];
|
||||
|
||||
if (!appkey || appkey.length == 0) {
|
||||
NSLog(@"error: app key not found in PushConfig.plist ");
|
||||
assert(0);
|
||||
}
|
||||
|
||||
NSString *advertisingId = nil;
|
||||
if(isIDFA){
|
||||
advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
|
||||
@ -311,6 +341,24 @@ static NSDictionary *_launchOptions = nil;
|
||||
|
||||
}
|
||||
|
||||
+(void)registerForRemoteNotification{
|
||||
[(AppDelegate*)[UIApplication sharedApplication].delegate registerForIos10RemoteNotification];
|
||||
|
||||
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
|
||||
//可以添加自定义categories
|
||||
[JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
|
||||
UIUserNotificationTypeSound |
|
||||
UIUserNotificationTypeAlert)
|
||||
categories:nil];
|
||||
} else if([[UIDevice currentDevice].systemVersion floatValue] < 8.0){
|
||||
//categories 必须为nil
|
||||
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
|
||||
UIRemoteNotificationTypeSound |
|
||||
UIRemoteNotificationTypeAlert)
|
||||
categories:nil];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark 将参数返回给js
|
||||
-(void)handleResultWithValue:(id)value command:(CDVInvokedUrlCommand*)command{
|
||||
CDVPluginResult *result = nil;
|
||||
@ -337,50 +385,35 @@ static NSDictionary *_launchOptions = nil;
|
||||
|
||||
#pragma mark 设置标签及别名回调
|
||||
-(void)tagsWithAliasCallback:(int)resultCode tags:(NSSet *)tags alias:(NSString *)alias{
|
||||
|
||||
NSDictionary *dict = @{@"resultCode":[NSNumber numberWithInt:resultCode],
|
||||
@"tags" :tags == nil ? [NSNull null] : [tags allObjects],
|
||||
@"alias" :alias == nil ? [NSNull null] : alias
|
||||
};
|
||||
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.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.setTagsWithAlias',%@)",jsonString]];
|
||||
[self.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.setTagsWithAlias',%@)",[dict toJsonString]]];
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (void)networkDidReceiveMessage:(NSNotification *)notification {
|
||||
if (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.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.receiveMessage',%@)",jsonString]];
|
||||
[self.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.receiveMessage',%@)",[notification.userInfo toJsonString]]];
|
||||
|
||||
[self.commandDelegate evalJs:[NSString stringWithFormat:@"window.plugins.jPushPlugin.receiveMessageIniOSCallback('%@')",jsonString]];
|
||||
[self.commandDelegate evalJs:[NSString stringWithFormat:@"window.plugins.jPushPlugin.receiveMessageIniOSCallback('%@')",[notification.userInfo toJsonString]]];
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
-(void)networkDidReceiveNotification:(id)notification{
|
||||
-(void)networkDidReceiveNotification:(NSNotification *)notification{
|
||||
|
||||
NSError *error;
|
||||
NSDictionary *userInfo = [notification object];
|
||||
|
||||
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:userInfo options:0 error:&error];
|
||||
NSString *jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
|
||||
|
||||
switch ([UIApplication sharedApplication].applicationState) {
|
||||
case UIApplicationStateActive:{
|
||||
//前台收到
|
||||
@ -404,10 +437,10 @@ static NSDictionary *_launchOptions = nil;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
//do nothing
|
||||
break;
|
||||
//do nothing
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
176
src/ios/lib/JPUSHService.h
Executable file → Normal file
176
src/ios/lib/JPUSHService.h
Executable file → Normal file
@ -9,23 +9,102 @@
|
||||
* Copyright (c) 2011 ~ 2015 Shenzhen HXHG. All rights reserved.
|
||||
*/
|
||||
|
||||
#define JPUSH_VERSION_NUMBER 2.1.8
|
||||
#define JPUSH_VERSION_NUMBER 2.1.9
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class CLRegion;
|
||||
@class UILocalNotification;
|
||||
@class CLLocation;
|
||||
@class UNNotificationCategory;
|
||||
@class UNNotificationSettings;
|
||||
@class UNNotificationRequest;
|
||||
@class UNNotification;
|
||||
@protocol JPUSHRegisterDelegate;
|
||||
|
||||
extern NSString *const kJPFNetworkIsConnectingNotification; // 正在连接中
|
||||
extern NSString *const kJPFNetworkDidSetupNotification; // 建立连接
|
||||
extern NSString *const kJPFNetworkDidCloseNotification; // 关闭连接
|
||||
extern NSString *const kJPFNetworkDidRegisterNotification; // 注册成功
|
||||
extern NSString *const kJPFNetworkFailedRegisterNotification; //注册失败
|
||||
extern NSString *const kJPFNetworkDidLoginNotification; // 登录成功
|
||||
extern NSString *const kJPFNetworkDidReceiveMessageNotification; // 收到消息(非APNS)
|
||||
extern NSString *const kJPFServiceErrorNotification; // 错误提示
|
||||
|
||||
@class CLLocation;
|
||||
/*!
|
||||
* 通知注册实体类
|
||||
*/
|
||||
@interface JPUSHRegisterEntity : NSObject
|
||||
|
||||
/*!
|
||||
* 支持的类型
|
||||
* badge,sound,alert
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger types;
|
||||
/*!
|
||||
* 注入的类别
|
||||
* iOS10 UNNotificationCategory
|
||||
* iOS8-iOS9 UIUserNotificationCategory
|
||||
*/
|
||||
@property (nonatomic, strong) NSSet *categories;
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 进行删除、查找推送实体类
|
||||
*/
|
||||
@interface JPushNotificationIdentifier : NSObject<NSCopying, NSCoding>
|
||||
|
||||
@property (nonatomic, copy) NSArray<NSString *> *identifiers; // 推送的标识数组
|
||||
@property (nonatomic, copy) UILocalNotification *notificationObj NS_DEPRECATED_IOS(4_0, 10_0); // iOS10以下可以传UILocalNotification对象数据,iOS10以上无效
|
||||
@property (nonatomic, assign) BOOL delivered NS_AVAILABLE_IOS(10_0); // 在通知中心显示的或待推送的标志,默认为NO,YES表示在通知中心显示的,NO表示待推送的
|
||||
@property (nonatomic, copy) void (^findCompletionHandler)(NSArray *results); // 用于查询回调,调用[findNotification:]方法前必须设置,results为返回相应对象数组,iOS10以下返回UILocalNotification对象数组;iOS10以上根据delivered传入值返回UNNotification或UNNotificationRequest对象数组(delivered传入YES,则返回UNNotification对象数组,否则返回UNNotificationRequest对象数组)
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 推送内容实体类
|
||||
*/
|
||||
@interface JPushNotificationContent : NSObject<NSCopying, NSCoding>
|
||||
|
||||
@property (nonatomic, copy) NSString *title; // 推送标题
|
||||
@property (nonatomic, copy) NSString *subtitle; // 推送副标题
|
||||
@property (nonatomic, copy) NSString *body; // 推送内容
|
||||
@property (nonatomic, copy) NSNumber *badge; // 角标的数字。如果不需要改变角标传@(-1)
|
||||
@property (nonatomic, copy) NSString *action NS_DEPRECATED_IOS(8_0, 10_0); // 弹框的按钮显示的内容(IOS 8默认为"打开", 其他默认为"启动",iOS10以上无效)
|
||||
@property (nonatomic, copy) NSString *categoryIdentifier; // 行为分类标识
|
||||
@property (nonatomic, copy) NSDictionary *userInfo; // 本地推送时可以设置userInfo来增加附加信息,远程推送时设置的payload推送内容作为此userInfo
|
||||
@property (nonatomic, copy) NSString *sound; // 声音名称,不设置则为默认声音
|
||||
@property (nonatomic, copy) NSArray *attachments NS_AVAILABLE_IOS(10_0); // 附件,iOS10以上有效,需要传入UNNotificationAttachment对象数组类型
|
||||
@property (nonatomic, copy) NSString *threadIdentifier NS_AVAILABLE_IOS(10_0); // 线程或与推送请求相关对话的标识,iOS10以上有效,可用来对推送进行分组
|
||||
@property (nonatomic, copy) NSString *launchImageName NS_AVAILABLE_IOS(10_0); // 启动图片名,iOS10以上有效,从推送启动时将会用到
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 推送触发方式实体类
|
||||
* 注:dateComponents、timeInterval、region在iOS10以上可选择其中一个参数传入有效值,如果同时传入值会根据优先级I、II、III使其中一种触发方式生效,fireDate为iOS10以下根据时间触发时须传入的参数
|
||||
*/
|
||||
@interface JPushNotificationTrigger : NSObject<NSCopying, NSCoding>
|
||||
|
||||
@property (nonatomic, assign) BOOL repeat; // 设置是否重复,默认为NO
|
||||
@property (nonatomic, copy) NSDate *fireDate NS_DEPRECATED_IOS(2_0, 10_0); // 用来设置触发推送的时间,iOS10以上无效
|
||||
@property (nonatomic, copy) CLRegion *region NS_AVAILABLE_IOS(8_0); // 用来设置触发推送的位置,iOS8以上有效,iOS10以上优先级为I,应用需要有允许使用定位的授权
|
||||
@property (nonatomic, copy) NSDateComponents *dateComponents NS_AVAILABLE_IOS(10_0); // 用来设置触发推送的日期时间,iOS10以上有效,优先级为II
|
||||
@property (nonatomic, assign) NSTimeInterval timeInterval NS_AVAILABLE_IOS(10_0); // 用来设置触发推送的时间,iOS10以上有效,优先级为III
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 注册或更新推送实体类
|
||||
*/
|
||||
@interface JPushNotificationRequest : NSObject<NSCopying, NSCoding>
|
||||
|
||||
@property (nonatomic, copy) NSString *requestIdentifier; // 推送请求标识
|
||||
@property (nonatomic, copy) JPushNotificationContent *content; // 设置推送的具体内容
|
||||
@property (nonatomic, copy) JPushNotificationTrigger *trigger; // 设置推送的触发方式
|
||||
@property (nonatomic, copy) void (^completionHandler)(id result); // 注册或更新推送成功回调,iOS10以上成功则result为UNNotificationRequest对象,失败则result为nil;iOS10以下成功result为UILocalNotification对象,失败则result为nil
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* JPush 核心头文件
|
||||
@ -77,12 +156,20 @@ extern NSString *const kJPFServiceErrorNotification; // 错误提示
|
||||
* @abstract 注册要处理的远程通知类型
|
||||
*
|
||||
* @param types 通知类型
|
||||
* @param categories
|
||||
* @param categories 类别组
|
||||
*
|
||||
* @discussion
|
||||
*/
|
||||
+ (void)registerForRemoteNotificationTypes:(NSUInteger)types
|
||||
categories:(NSSet *)categories;
|
||||
/*!
|
||||
* @abstract 新版本的注册方法(兼容iOS10)
|
||||
*
|
||||
* @param config 注册通知配置
|
||||
* @param delegate 代理
|
||||
*
|
||||
*/
|
||||
+ (void)registerForRemoteNotificationConfig:(JPUSHRegisterEntity *)config delegate:(id<JPUSHRegisterDelegate>)delegate;
|
||||
|
||||
|
||||
+ (void)registerDeviceToken:(NSData *)deviceToken;
|
||||
|
||||
@ -99,14 +186,14 @@ extern NSString *const kJPFServiceErrorNotification; // 错误提示
|
||||
|
||||
/*!
|
||||
* 下面的接口是可选的
|
||||
* 设置标签和(或)别名(若参数为nil,则忽略;若是空对象,则清空;详情请参考文档:http://docs.jpush.io/client/ios_api/#api-ios)
|
||||
* 设置标签和(或)别名(若参数为nil,则忽略;若是空对象,则清空;详情请参考文档:http://docs.jiguang.cn/client/ios_api/#api-ios)
|
||||
* setTags:alias:fetchCompletionHandle:是新的设置标签别名的方法,不再需要显示声明回调函数,只需要在block里面处理设置结果即可.
|
||||
* WARN: 使用block时需要注意循环引用问题
|
||||
*/
|
||||
+ (void) setTags:(NSSet *)tags
|
||||
alias:(NSString *)alias
|
||||
callbackSelector:(SEL)cbSelector
|
||||
target:(id)theTarget __attribute__((deprecated("JPush 2.1.1 版本已过期")));;
|
||||
target:(id)theTarget __attribute__((deprecated("JPush 2.1.1 版本已过期")));
|
||||
|
||||
+ (void) setTags:(NSSet *)tags
|
||||
alias:(NSString *)alias
|
||||
@ -192,6 +279,35 @@ callbackSelector:(SEL)cbSelector
|
||||
///----------------------------------------------------
|
||||
/// @name Local Notification 本地通知
|
||||
///----------------------------------------------------
|
||||
/*!
|
||||
* @abstract 注册或更新推送 (支持iOS10,并兼容iOS10以下版本)
|
||||
*
|
||||
* JPush 2.1.9新接口
|
||||
* @param request JPushNotificationRequest类型,设置推送的属性,设置已有推送的request.requestIdentifier即更新已有的推送,否则为注册新推送,更新推送仅仅在iOS10以上有效,结果通过request.completionHandler返回
|
||||
* @discussion 旧的注册本地推送接口被废弃,使用此接口可以替换
|
||||
*
|
||||
*/
|
||||
+ (void)addNotification:(JPushNotificationRequest *)request;
|
||||
|
||||
/*!
|
||||
* @abstract 移除推送 (支持iOS10,并兼容iOS10以下版本)
|
||||
*
|
||||
* JPush 2.1.9新接口
|
||||
* @param identifier JPushNotificationIdentifier类型,iOS10以上identifier设置为nil,则移除所有在通知中心显示推送和待推送请求,也可以通过设置identifier.delivered和identifier.identifiers来移除相应在通知中心显示推送或待推送请求,identifier.identifiers如果设置为nil或空数组则移除相应标志下所有在通知中心显示推送或待推送请求;iOS10以下identifier设置为nil,则移除所有推送,identifier.delivered属性无效,另外可以通过identifier.notificationObj传入特定推送对象来移除此推送。
|
||||
* @discussion 旧的所有删除推送接口被废弃,使用此接口可以替换
|
||||
*
|
||||
*/
|
||||
+ (void)removeNotification:(JPushNotificationIdentifier *)identifier;
|
||||
|
||||
/*!
|
||||
* @abstract 查找推送 (支持iOS10,并兼容iOS10以下版本)
|
||||
*
|
||||
* JPush 2.1.9新接口
|
||||
* @param identifier JPushNotificationIdentifier类型,iOS10以上可以通过设置identifier.delivered和identifier.identifiers来查找相应在通知中心显示推送或待推送请求,identifier.identifiers如果设置为nil或空数组则返回相应标志下所有在通知中心显示推送或待推送请求;iOS10以下identifier.delivered属性无效,identifier.identifiers如果设置nil或空数组则返回所有推送。须要设置identifier.findCompletionHandler回调才能得到查找结果,通过(NSArray *results)返回相应对象数组。
|
||||
* @discussion 旧的查找推送接口被废弃,使用此接口可以替换
|
||||
*
|
||||
*/
|
||||
+ (void)findNotification:(JPushNotificationIdentifier *)identifier;
|
||||
|
||||
/*!
|
||||
* @abstract 本地推送,最多支持64个
|
||||
@ -204,7 +320,7 @@ callbackSelector:(SEL)cbSelector
|
||||
* @param userInfo 自定义参数,可以用来标识推送和增加附加信息
|
||||
* @param soundName 自定义通知声音,设置为nil为默认声音
|
||||
*
|
||||
* @discussion 最多支持 64 个定义
|
||||
* @discussion 最多支持 64 个定义,此方法被[addNotification:]方法取代
|
||||
*/
|
||||
+ (UILocalNotification *)setLocalNotification:(NSDate *)fireDate
|
||||
alertBody:(NSString *)alertBody
|
||||
@ -212,7 +328,7 @@ callbackSelector:(SEL)cbSelector
|
||||
alertAction:(NSString *)alertAction
|
||||
identifierKey:(NSString *)notificationKey
|
||||
userInfo:(NSDictionary *)userInfo
|
||||
soundName:(NSString *)soundName;
|
||||
soundName:(NSString *)soundName __attribute__((deprecated("JPush 2.1.9 版本已过期")));
|
||||
|
||||
/*!
|
||||
* @abstract 本地推送 (支持 iOS8 新参数)
|
||||
@ -221,6 +337,7 @@ callbackSelector:(SEL)cbSelector
|
||||
* @param region 自定义参数
|
||||
* @param regionTriggersOnce 自定义参数
|
||||
* @param category 自定义参数
|
||||
* @discussion 此方法被[addNotification:]方法取代
|
||||
*/
|
||||
+ (UILocalNotification *)setLocalNotification:(NSDate *)fireDate
|
||||
alertBody:(NSString *)alertBody
|
||||
@ -231,7 +348,7 @@ callbackSelector:(SEL)cbSelector
|
||||
soundName:(NSString *)soundName
|
||||
region:(CLRegion *)region
|
||||
regionTriggersOnce:(BOOL)regionTriggersOnce
|
||||
category:(NSString *)category NS_AVAILABLE_IOS(8_0);
|
||||
category:(NSString *)category NS_AVAILABLE_IOS(8_0) __attribute__((deprecated("JPush 2.1.9 版本已过期")));
|
||||
|
||||
/*!
|
||||
* @abstract 前台展示本地推送
|
||||
@ -239,35 +356,39 @@ callbackSelector:(SEL)cbSelector
|
||||
* @param notification 本地推送对象
|
||||
* @param notificationKey 需要前台显示的本地推送通知的标示符
|
||||
*
|
||||
* @discussion 默认App在前台运行时不会进行弹窗,在程序接收通知调用此接口可实现指定的推送弹窗。
|
||||
* @discussion 默认App在前台运行时不会进行弹窗,在程序接收通知调用此接口可实现指定的推送弹窗。--iOS10以下还可继续使用,iOS10以上在[UNUserNotificationCenterDelegate willPresentNotification:withCompletionHandler:]方法中调用completionHandler(UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);即可
|
||||
*/
|
||||
+ (void)showLocalNotificationAtFront:(UILocalNotification *)notification
|
||||
identifierKey:(NSString *)notificationKey;
|
||||
identifierKey:(NSString *)notificationKey __attribute__((deprecated("JPush 2.1.9 版本已过期")));
|
||||
/*!
|
||||
* @abstract 删除本地推送定义
|
||||
*
|
||||
* @param notificationKey 本地推送标示符
|
||||
* @param myUILocalNotification 本地推送对象
|
||||
* @discussion 此方法被[removeNotification:]方法取代
|
||||
*/
|
||||
+ (void)deleteLocalNotificationWithIdentifierKey:(NSString *)notificationKey;
|
||||
+ (void)deleteLocalNotificationWithIdentifierKey:(NSString *)notificationKey __attribute__((deprecated("JPush 2.1.9 版本已过期")));
|
||||
|
||||
/*!
|
||||
* @abstract 删除本地推送定义
|
||||
* @discussion 此方法被[removeNotification:]方法取代
|
||||
*/
|
||||
+ (void)deleteLocalNotification:(UILocalNotification *)localNotification;
|
||||
+ (void)deleteLocalNotification:(UILocalNotification *)localNotification __attribute__((deprecated("JPush 2.1.9 版本已过期")));
|
||||
|
||||
/*!
|
||||
* @abstract 获取指定通知
|
||||
*
|
||||
* @param notificationKey 本地推送标示符
|
||||
* @return 本地推送对象数组, [array count]为0时表示没找到
|
||||
* @discussion 此方法被[findNotification:]方法取代
|
||||
*/
|
||||
+ (NSArray *)findLocalNotificationWithIdentifier:(NSString *)notificationKey;
|
||||
+ (NSArray *)findLocalNotificationWithIdentifier:(NSString *)notificationKey __attribute__((deprecated("JPush 2.1.9 版本已过期")));
|
||||
|
||||
/*!
|
||||
* @abstract 清除所有本地推送对象
|
||||
* @discussion 此方法被[removeNotification:]方法取代
|
||||
*/
|
||||
+ (void)clearAllLocalNotifications;
|
||||
+ (void)clearAllLocalNotifications __attribute__((deprecated("JPush 2.1.9 版本已过期")));
|
||||
|
||||
|
||||
///----------------------------------------------------
|
||||
@ -313,11 +434,13 @@ callbackSelector:(SEL)cbSelector
|
||||
*
|
||||
* JPush 支持根据 registrationID 来进行推送.
|
||||
* 如果你需要此功能, 应该通过此接口获取到 registrationID 后, 上报到你自己的服务器端, 并保存下来.
|
||||
*
|
||||
* registrationIDCompletionHandler:是新增的获取registrationID的方法,需要在block中获取registrationID,resCode为返回码,模拟器调用此接口resCode返回1011,registrationID返回nil.
|
||||
* 更多的理解请参考 JPush 的文档网站.
|
||||
*/
|
||||
+ (NSString *)registrationID;
|
||||
|
||||
+ (void)registrationIDCompletionHandler:(void(^)(int resCode,NSString *registrationID))completionHandler;
|
||||
|
||||
/*!
|
||||
* @abstract 打开日志级别到 Debug
|
||||
*
|
||||
@ -342,5 +465,26 @@ callbackSelector:(SEL)cbSelector
|
||||
*/
|
||||
+ (void)setLogOFF;
|
||||
|
||||
@end
|
||||
|
||||
@class UNUserNotificationCenter;
|
||||
@class UNNotificationResponse;
|
||||
|
||||
@protocol JPUSHRegisterDelegate <NSObject>
|
||||
|
||||
/*
|
||||
* @brief handle UserNotifications.framework [willPresentNotification:withCompletionHandler:]
|
||||
* @param center [UNUserNotificationCenter currentNotificationCenter] 新特性用户通知中心
|
||||
* @param notification 前台得到的的通知对象
|
||||
* @param completionHandler 该callback中的options 请使用UNNotificationPresentationOptions
|
||||
*/
|
||||
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger options))completionHandler;
|
||||
/*
|
||||
* @brief handle UserNotifications.framework [didReceiveNotificationResponse:withCompletionHandler:]
|
||||
* @param center [UNUserNotificationCenter currentNotificationCenter] 新特性用户通知中心
|
||||
* @param response 通知响应对象
|
||||
* @param completionHandler
|
||||
*/
|
||||
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler;
|
||||
|
||||
@end
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user