onGetUserProfile:dataJson
获取用户敏感信息
该方法用于获取原APP用户敏感信息。主要用途是:为游戏提供APP敏感用户信息。
方法声明
objectivec
/**
* 当 SDK 请求获取用户敏感信息(User Profile)时触发。
* 通常涉及比基本信息更详细的字段,如性别、地区、实名状态等。
*
* @param stateHandle 用于向 SDK 返回处理结果的状态句柄。
* @param dataJson 包含请求参数(如用户 ID 及需要的详细属性列表)的 JSON 字符串。
*/
- (void)onGetUserProfile:(id<SUDOPStateHandle>)stateHandle dataJson:(NSString*)dataJson;运行行为
- 按需触发:当玩家在游戏内点击查看详细个人名片、或者游戏需要根据性别分配初始角色/皮肤、判断是否为 VIP 玩家时,引擎会发起此请求。
- 精准字段请求:
dataJson中通常会指定具体的userId以及游戏感兴趣的字段列表(例如["gender", "region", "vip_level"])。 - 异步组装:由于详细资料可能分布在不同的业务系统(如会员系统、地理位置服务),App 可以在收集完所有数据后,通过
[stateHandle success:]统一回传。 - 隐私过滤:App 侧可以在此方法内实现隐私逻辑。例如,若用户开启了“隐藏地理位置”,App 可以选择不返回
region字段或返回脱敏后的数据。
代码示例 (Objective-C)
实现详细资料的按需组装与回传:
objectivec
- (void)onGetUserProfile:(id<SUDOPStateHandle>)stateHandle dataJson:(NSString*)dataJson {
NSDictionary *profile = @{
@"gender": @"female",
@"region": @"Beijing, China",
};
// 3. 将结果转为 JSON 字符串
NSData *resultData = [NSJSONSerialization dataWithJSONObject:profile options:0 error:nil];
NSString *resultJson = [[NSString alloc] initWithData:resultData encoding:NSUTF8StringEncoding];
// 4. 通过 stateHandle 异步回传成功结果
[stateHandle success:resultJson];
}注意事项
- 字段契约:除了 SUDOP 预定义的标准 Key 之外,如果游戏有特定的扩展字段需求(如:战斗力、公会名称),请确保 App 侧返回的 JSON Key 与游戏侧约定的名称严格一致。
- 非强制性实现:如果您的游戏仅需要头像和昵称,可能永远不会触发此回调。但为了协议的完整性,建议即使不返回数据也调用一次
[stateHandle success:@"{}"]。 - 错误处理:如果用户不存在或数据获取失败,应调用
[stateHandle fail:SUDOP_ERR_UNKNOWN](或对应的错误码),避免游戏侧无限期等待。