133 lines
4.6 KiB
Objective-C
133 lines
4.6 KiB
Objective-C
#import "AppDelegate.h"
|
||
|
||
#import "GeneratedPluginRegistrant.h"
|
||
#import "CommonDefine.h"
|
||
#import "XSFlutterManager.h"
|
||
|
||
#import <UserNotifications/UserNotifications.h>
|
||
|
||
|
||
@interface AppDelegate()
|
||
|
||
@end
|
||
|
||
@implementation AppDelegate {
|
||
}
|
||
|
||
|
||
- (BOOL)application:(UIApplication *)application
|
||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||
|
||
[self initCloudPush];
|
||
[CloudPushSDK sendNotificationAck:launchOptions];
|
||
XSFlutterManager *VC = [[XSFlutterManager alloc] init];
|
||
self.window.rootViewController = VC;
|
||
[self.window makeKeyAndVisible];
|
||
|
||
return YES;
|
||
}
|
||
|
||
- (void)initCloudPush {
|
||
// SDK初始化
|
||
[CloudPushSDK asyncInit:@"333904046" appSecret:@"3eead09a7fc7416cb4082319aa6f48c6" callback:^(CloudPushCallbackResult *res) {
|
||
if (res.success) {
|
||
NSLog(@"Push SDK init success, deviceId: %@.", [CloudPushSDK getDeviceId]);
|
||
} else {
|
||
NSLog(@"Push SDK init failed, error: %@", res.error);
|
||
}
|
||
}];
|
||
}
|
||
|
||
/**
|
||
* 注册苹果推送,获取deviceToken用于推送
|
||
*
|
||
* @param application
|
||
*/
|
||
- (void)registerAPNS:(UIApplication *)application {
|
||
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
|
||
// iOS 8 Notifications
|
||
[application registerUserNotificationSettings:
|
||
[UIUserNotificationSettings settingsForTypes:
|
||
(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
|
||
categories:nil]];
|
||
[application registerForRemoteNotifications];
|
||
}
|
||
else {
|
||
// iOS < 8 Notifications
|
||
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
|
||
(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
|
||
}
|
||
}
|
||
/*
|
||
* 苹果推送注册成功回调,将苹果返回的deviceToken上传到CloudPush服务器
|
||
*/
|
||
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
||
[CloudPushSDK registerDevice:deviceToken withCallback:^(CloudPushCallbackResult *res) {
|
||
if (res.success) {
|
||
NSLog(@"Register deviceToken success.");
|
||
} else {
|
||
NSLog(@"Register deviceToken failed, error: %@", res.error);
|
||
}
|
||
}];
|
||
}
|
||
/*
|
||
* 苹果推送注册失败回调
|
||
*/
|
||
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
|
||
NSLog(@"didFailToRegisterForRemoteNotificationsWithError %@", error);
|
||
}
|
||
|
||
/**
|
||
* 注册推送消息到来监听
|
||
*/
|
||
- (void)registerMessageReceive {
|
||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||
selector:@selector(onMessageReceived:)
|
||
name:@"CCPDidReceiveMessageNotification"
|
||
object:nil];
|
||
}
|
||
/**
|
||
* 处理到来推送消息
|
||
*
|
||
* @param notification
|
||
*/
|
||
- (void)onMessageReceived:(NSNotification *)notification {
|
||
CCPSysMessage *message = [notification object];
|
||
NSString *title = [[NSString alloc] initWithData:message.title encoding:NSUTF8StringEncoding];
|
||
NSString *body = [[NSString alloc] initWithData:message.body encoding:NSUTF8StringEncoding];
|
||
NSLog(@"Receive message title: %@, content: %@.", title, body);
|
||
}
|
||
|
||
//- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||
// // 点击通知将App从关闭状态启动时,将通知打开回执上报
|
||
// // [CloudPushSDK handleLaunching:launchOptions];(Deprecated from v1.8.1)
|
||
// [CloudPushSDK sendNotificationAck:launchOptions];
|
||
// return YES;
|
||
//}
|
||
/*
|
||
* App处于启动状态时,通知打开回调
|
||
*/
|
||
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {
|
||
NSLog(@"Receive one notification.");
|
||
// 取得APNS通知内容
|
||
NSDictionary *aps = [userInfo valueForKey:@"aps"];
|
||
// 内容
|
||
NSString *content = [aps valueForKey:@"alert"];
|
||
// badge数量
|
||
NSInteger badge = [[aps valueForKey:@"badge"] integerValue];
|
||
// 播放声音
|
||
NSString *sound = [aps valueForKey:@"sound"];
|
||
// 取得Extras字段内容
|
||
NSString *Extras = [userInfo valueForKey:@"Extras"]; //服务端中Extras字段,key是自己定义的
|
||
NSLog(@"content = [%@], badge = [%ld], sound = [%@], Extras = [%@]", content, (long)badge, sound, Extras);
|
||
// iOS badge 清0
|
||
application.applicationIconBadgeNumber = 0;
|
||
// 通知打开回执上报
|
||
// [CloudPushSDK handleReceiveRemoteNotification:userInfo];(Deprecated from v1.8.1)
|
||
[CloudPushSDK sendNotificationAck:userInfo];
|
||
}
|
||
|
||
|
||
|
||
@end
|