XuqmGroup-RNSDK/packages/push/ios/XuqmPushModule.swift

37 行
1.3 KiB
Swift

import Foundation
import UIKit
import React
import XuqmCoreSDK
/**
* push iOS XuqmCoreSDK
*
* Android JS XuqmSDK.setUserInfo() setUserInfo()
* XuqmSDK.shared.setUserInfo()/clearUserInfo()APNs token XuqmPushSDK
* AppDelegate swizzle XuqmSDK.registerDeviceToken userId
*
* SDK XuqmCoreSDK offline/quiet-hours iOS PushSDK
* APIJS no-op
*/
@objc(XuqmPushModule)
class XuqmPushModule: NSObject {
@objc static func requiresMainQueueSetup() -> Bool { false }
@objc(setUserInfo:resolver:rejecter:)
func setUserInfo(_ info: NSDictionary?,
resolver resolve: RCTPromiseResolveBlock,
rejecter reject: RCTPromiseRejectBlock) {
if let info = info, let userId = info["userId"] as? String, !userId.isEmpty {
let nickname = info["name"] as? String
XuqmSDK.shared.setUserInfo(userId: userId, nickname: nickname, avatar: nil)
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
} else {
XuqmSDK.shared.clearUserInfo()
}
resolve(nil)
}
}