Initial commit
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// NTESCustomSysNotiSender.h
|
||||
// NIM
|
||||
//
|
||||
// Created by chris on 15/5/26.
|
||||
// Copyright (c) 2015年 Netease. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#define NTESNotifyID @"id"
|
||||
#define NTESCustomContent @"content"
|
||||
|
||||
#define NTESCommandTyping (1)
|
||||
#define NTESCustom (2)
|
||||
|
||||
|
||||
@interface NTESCustomSysNotificationSender : NSObject
|
||||
|
||||
- (void)sendCustomContent:(NSString *)content toSession:(NIMSession *)session;
|
||||
|
||||
- (void)sendTypingState:(NIMSession *)session;
|
||||
|
||||
@end
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// NTESCustomSysNotiSender.m
|
||||
// NIM
|
||||
//
|
||||
// Created by chris on 15/5/26.
|
||||
// Copyright (c) 2015年 Netease. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NTESCustomSysNotificationSender.h"
|
||||
|
||||
@interface NTESCustomSysNotificationSender ()
|
||||
@property (nonatomic,strong) NSDate *lastTime;
|
||||
@end
|
||||
|
||||
@implementation NTESCustomSysNotificationSender
|
||||
|
||||
- (void)sendCustomContent:(NSString *)content toSession:(NIMSession *)session{
|
||||
if (!content) {
|
||||
return;
|
||||
}
|
||||
NSDictionary *dict = @{
|
||||
NTESNotifyID : @(NTESCustom),
|
||||
NTESCustomContent : content,
|
||||
};
|
||||
NSData *data = [NSJSONSerialization dataWithJSONObject:dict
|
||||
options:0
|
||||
error:nil];
|
||||
NSString *json = [[NSString alloc] initWithData:data
|
||||
encoding:NSUTF8StringEncoding];
|
||||
|
||||
NIMCustomSystemNotification *notification = [[NIMCustomSystemNotification alloc] initWithContent:json];
|
||||
notification.apnsContent = content;
|
||||
notification.sendToOnlineUsersOnly = NO;
|
||||
NIMCustomSystemNotificationSetting *setting = [[NIMCustomSystemNotificationSetting alloc] init];
|
||||
setting.apnsEnabled = YES;
|
||||
notification.setting = setting;
|
||||
[[[NIMSDK sharedSDK] systemNotificationManager] sendCustomNotification:notification
|
||||
toSession:session
|
||||
completion:nil];
|
||||
}
|
||||
|
||||
|
||||
- (void)sendTypingState:(NIMSession *)session
|
||||
{
|
||||
NSString *currentAccount = [[[NIMSDK sharedSDK] loginManager] currentAccount];
|
||||
if (session.sessionType != NIMSessionTypeP2P ||
|
||||
[session.sessionId isEqualToString:currentAccount])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
NSDate *now = [NSDate date];
|
||||
if (_lastTime == nil ||
|
||||
[now timeIntervalSinceDate:_lastTime] > 3)
|
||||
{
|
||||
_lastTime = now;
|
||||
|
||||
NSDictionary *dict = @{NTESNotifyID : @(NTESCommandTyping)};
|
||||
NSData *data = [NSJSONSerialization dataWithJSONObject:dict
|
||||
options:0
|
||||
error:nil];
|
||||
NSString *content = [[NSString alloc] initWithData:data
|
||||
encoding:NSUTF8StringEncoding];
|
||||
|
||||
NIMCustomSystemNotification *notification = [[NIMCustomSystemNotification alloc] initWithContent:content];
|
||||
notification.sendToOnlineUsersOnly = YES;
|
||||
NIMCustomSystemNotificationSetting *setting = [[NIMCustomSystemNotificationSetting alloc] init];
|
||||
setting.apnsEnabled = NO;
|
||||
notification.setting = setting;
|
||||
[[[NIMSDK sharedSDK] systemNotificationManager] sendCustomNotification:notification
|
||||
toSession:session
|
||||
completion:nil];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user