XuqmGroup-RNSDK/packages/push/ios/XuqmPushModule.m
XuqmGroup a58f920a3f feat(android-sdk): 添加完整的IM客户端SDK实现
- 实现了Android SDK的完整IM功能接口,包括消息、群组、好友、会话等核心功能
- 添加了消息收发、历史记录、撤回编辑等完整的消息操作能力
- 实现了群组管理功能,包括创建、成员管理、权限设置等操作
- 添加了好友关系链管理,支持添加、删除、分组等操作
- 实现了会话管理功能,包括置顶、免打扰、已读状态等
- 添加了黑名单、资料管理、搜索等辅助功能
- 补齐了批量操作接口,提升客户端操作效率
- 实现了WebSocket连接管理和事件监听机制
- 添加了离线消息同步和状态管理功能
2026-05-02 22:57:55 +08:00

49 行
1.4 KiB
Objective-C

#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>
@interface XuqmPushModule : RCTEventEmitter <RCTBridgeModule>
@end
@implementation XuqmPushModule
RCT_EXPORT_MODULE(XuqmPushModule);
- (NSArray<NSString *> *)supportedEvents {
return @[@"XuqmPushToken"];
}
+ (BOOL)requiresMainQueueSetup {
return NO;
}
RCT_EXPORT_METHOD(detectVendor:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject) {
NSString *vendor = @"APNS";
#if TARGET_OS_SIMULATOR
vendor = @"FCM";
#endif
resolve(vendor);
}
RCT_EXPORT_METHOD(registerPush:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject) {
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
resolve(@(YES));
});
}
// Called by the AppDelegate to report the device token
- (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
const unsigned char *dataBuffer = (const unsigned char *)[deviceToken bytes];
NSUInteger dataLength = [deviceToken length];
NSMutableString *hexString = [NSMutableString stringWithCapacity:(dataLength * 2)];
for (NSUInteger i = 0; i < dataLength; ++i) {
[hexString appendFormat:@"%02x", dataBuffer[i]];
}
NSString *token = [hexString copy];
[self sendEventWithName:@"XuqmPushToken" body:@{@"token": token, @"vendor": @"APNS"}];
}
@end