XuqmGroup-RNSDK/packages/push/ios/XuqmPushModule.swift
XuqmGroup 4d2b834f96 feat(sdk): 下载相册/进度、XWebView内联config、上报限频采样、版本忽略、push桥接原生sdk-push
- xwebview: 下载支持公共Downloads/相册(CameraRoll懒加载)/JS进度/openFile;XWebViewView 新增内联 config prop(同屏多实例不污染全局)
- bugcollect: startCapture 自动启用 HttpInterceptor + 按指纹滑动窗口限频 + setSampleRate 采样(降低服务端存储压力)
- update: ignoreAppVersion/clearIgnoredAppVersion/getIgnoredAppVersion 客户端忽略版本(强制更新除外)
- common/metro: withXuqmConfig 自动链式 withBugCollect(Release 包 sourcemap 自动上传)
- push: 桥接完整原生 sdk-push(Android Kotlin + iOS Swift + JS 薄层),删除旧反射实现;单一 XuqmSDK.setUserInfo 驱动厂商检测/token/绑定

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-25 17:50:29 +08:00

37 行
1.3 KiB
Swift

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

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)
}
}