supersdk

文档中心

文档中心

下载文档

工具模块


工具模块提供了一些辅助功能。

一、获取设备信息

接口调用:

// 获取设备信息
NSString * deviceInfo = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:@"getDeviceInfo" parameters:nil];
NSLog(@"设备信息为:%@", deviceInfo);

日志打印:

{
    "fingerprint_id":"2022081900000246002a609ea9b4751a718f0eca5b0dd0b8d97",
    "client_id":"5f6e4974e684826e970a21c039b8db5e",
    "trace_id":"62cbf6d0c3a8efd311ff8db61a31132c",
    "youzu_id":"5f6e4974e684826e970a21c039b8db5e",
    "android_device_id":"",
    "google_id":"",
    "android_imei":"",
    "package_name":"com.supersdk.game",
    "shumei_id":"2021122414311564065252acca8ae17cb8b9a690e72d6601f8100d5dfdd541",
    "device_name":"iPhone12 pro max",
    "idfa":"434E7A22-822C-4B08-A8E8-F65CAAC67C13",
    "idfv":"4D02BDCA-0F0B-4E53-A802-66ED9AD39FB7",
}
KEY KEY含义 备注
fingerprint_id 设备指纹 ID 正常 51 个字符,其它值为异常情况
shumei_id 数美 ID 正常 62 个字符,其它值为异常情况
android_device_id 安卓 ID 仅支持 Android,iOS 空字符串
google_id 谷歌 ID 仅支持 Android,iOS 空字符串
package_name 包名 应用 bundle id
android_imei IMEI 仅支持 Android,iOS 空字符串
device_name 设备名称 设备自定义名称
youzu_id 游族 ID 正常 32 个字符,其它值为异常情况
client_id 设备指纹 ID 映射 正常 32 个字符,其它值为异常情况
trace_id 当前启动标识 ID 正常 32 个字符,其它值为异常情况
idfv iOS - 供应商标识符 正常 36 个字符,其它值为异常情况
idfa iOS - 广告标识符 正常 36 个字符,其它值为异常情况

二、获取设备采集数据

接口调用:

// 获取设备采集数据
NSString *collectionData = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_COLLECTIONDATA parameters:nil];
NSLog(@"获取设备采集数据为:%@", collectionData);

日志打印:

{
    "bundle_id":"com.supersdk.game",
    "device_name":"iPhone12 pro max",
    "device_type":"iPhone13,4",
    "idfa":"434E7A22-822C-4B08-A8E8-F65CAAC67C13",
    "idfv":"4D02BDCA-0F0B-4E53-A802-66ED9AD39FB7",
    "language":"zh-Hans"
    "network":"WIFI",
    "operator":"other",
    "os_version":"iOS14.4.2",
}

三、获取客户端 IP 信息

注意:只支持海外网游渠道。

接口调用:

// 获取客户端 IP 信息-目前只支持海外网游渠道
[SuperSDK invoke:BCORE_MODULE_TOOLS funcName:@"getClientIP" parameters:nil];

接口回调:

- (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result {
    // 处理 SuperSDK 回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:BCORE_MODULE_TOOLS]){// Tools模块回调
        if ([funcName isEqualToString:BCORE_FUNC_GET_CLIENT_IP_INFO]) {// 获取客户端 IP 信息方法回调
            NSDictionary *clientIPInfo = [retParam objectForKey:@"data"];// 回调 data 数据
            NSLog(@"获取客户端 IP 信息为 %@", clientIPInfo);
        }
    }
}

日志打印:

moduleName : tools,
funcName : getClientIP,
result : {
    "msg":"成功",
    "data":{
        "ip":"45.40.60.217",
        "country":"JP", // 地区或国家
        "continent":"AS" // 大洲
    },
    "code":1
}

参照文档:第一列国家码,最后一列大洲码 https://www.geonames.org/countries/

四、获取当前设备使用的语言

接口调用:

// 获取当前设备使用的语言
NSString *language = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_LANGUAGE parameters:nil];
NSLog(@"获取获取当前设备使用的语言为:%@", language);

日志打印:

获取获取当前设备使用的语言为:zh-Hans

常见系统语言:简体中文 zh-Hans、英语 en、法语 fr、德语 de、繁体中文 zh-Hant-HK、印尼 id、日语 ja、韩语 ko、葡萄牙语 pt、俄语 ru、西班牙语 es、泰语 th

五、获取当前设备设置的国家地区

接口调用:

// 获取当前设备设置的国家
NSString *country = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_COUNTRY parameters:nil];
NSLog(@"获取当前设备设置的国家地区为:%@", country);

日志打印:

获取当前设备设置的国家地区为:CN

Screenshot

六、复制到剪切板

接口调用:

// 复制到剪切板
[SuperSDK invoke:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_CopyToClipboard parameters:@{BCORE_KEY_TOOLS_VALUE: @"要复制的内容"}];

七、弹框提示

接口调用:

// 弹原生框
NSDictionary *parameters = @{
                              BCORE_KEY_TOOLS_TIILE : @"弹框标题",
                              BCORE_KEY_TOOLS_CONTENT : @"弹框内容",
                              BCORE_KEY_TOOLS_BUTTON : @"确定|取消" // 如有多个按钮,请按从左到右顺序,以"|"分割拼接
                              };
[SuperSDK invoke:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_ALERT parameters: parameters];

接口回调:

- (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result {
    // 处理 SuperSDK 回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:BCORE_MODULE_TOOLS]){// Tools 模块回调
        if ([funcName isEqualToString:BCORE_FUNC_ALERT]) {// 点击弹框按钮回调
            NSString *buttonTitle = [retParam objectForKey:@"data"];// 回调 data 数据
            NSLog(@"点击了 %@ 按钮", buttonTitle);
        }
    }
}

日志打印:

moduleName : tools,
funcName : alert,
parameters : {
    "msg" : "操作成功",
    "data" : "确定",
    "code" : 1
}

八、设置屏幕亮度方法

接口调用:

// 设置屏幕亮度方法
NSDictionary *parameters = @{
                               BCORE_KEY_TOOLS_VALUE : @"0.5" // 亮度范围为 0.0-1.0
                            };
[SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_SetScreenLight parameters:parameters];

九、写缓存

接口调用:

// 写缓存
NSDictionary *parameters = @{
                              BCORE_KEY_TOOLS_KEY : @"保存数据的 key 值",
                              BCORE_KEY_TOOLS_VALUE : @"保存数据的 value 值"
                            };
[SuperSDK invoke:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_SAVE_DATA parameters:parameters];

十、读取缓存

接口调用:

// 读取缓存
NSDictionary *parameters = @{
                              BCORE_KEY_TOOLS_KEY : @"保存数据的 key 值"
                            };
NSString *data = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_DATA parameters:parameters];

十一、应用内弹出 Appstore 评分框

注意:支持 iOS10+ 。

[SuperSDK invoke:BCORE_MODULE_TOOLS funcName:@"getStoreReview" parameters:nil];

日志打印:

moduleName : tools,
funcName : getStoreReview,
result : {
    "code" : 1,
    "msg" : "评分框已弹",
}

十二、应用内跳转至 App Store 评论页

[SuperSDK invoke:BCORE_MODULE_TOOLS 
        funcName:@"getAPPStoreReview" 
      parameters:@{
                    BCORE_KEY_TOOLS_VALUE : @"1538544451" // value 值:苹果 Connent 后台提供的 AppleId,如:“1538544451”
                  }
];

日志打印:

moduleName : tools,
funcName : getAPPStoreReview,
result : {
    "code" : 1,
    "msg" : "跳转至评论页",
}

十三、跳转到系统设置

// 打开到系统设置
[SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:@"openSystemSetting" parameters:nil];

十四、海外设备广告信息查询接口

接口描述:用于广告溯源,根据设备查询引流该玩家的广告。

接口调用:

[SuperSDK invoke:BCORE_MODULE_TOOLS funcName:@"getDeviceCheckInfo" parameters:nil];

日志打印:

moduleName : tools,
funcName : getDeviceCheckInfo,
result : {
    "code" : 1,
    "data":"{
        "ad_game_type":"",
        "ad_name":"",
        "is_ad_device":false
    }",
    "msg" : "成功",
}

十五、判断设备是否越狱

接口调用:

// 判断设备是否越狱
BOOL isJaibreak = [SuperSDK invokeBool:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_JailBreak parameters:@{@"judgeMethod" : @(0)}]; // 0: 内部方法,1:外部方法,2:所有方法
NSLog(@"当前设备是否越狱:%@", isJaibreak ? @"是" : @"否");

日志打印:

当前设备是否越狱:否

十六、获取 info.plist key 对应的字符串数据

Screenshot

接口调用:

// 获取 info.plist key 对应的字符串数据
NSDictionary *parameters = @{
                              BCORE_KEY_TOOLS_KEY : @"sp_version"// info.plist 的某个 key,例如 sp_version
                              };
NSString *spVersion = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_INFO_PLIST_VALUE parameters:parameters];
NSLog(@"设置的 sp_version 为:%@", spVersion);

日志打印:

设置的 sp_version 为:4.0.0

十七、获取应用配置

Screenshot

1、获取应用包名

接口调用:

// 获取应用包名
NSString *packageName = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_PACKAGE_NAME parameters:nil];
NSLog(@"获取应用的包名为:%@", packageName);

日志打印:

获取应用的包名为:com.uuzu.mubao

2、获取应用名称

接口调用:

// 获取应用名称
NSString *appName = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_APP_NAME parameters:nil];
NSLog(@"获取应用的名称为:%@", appName);

日志打印:

获取应用的名称为:Demo_Mubao

3、获取 short version 方法

接口调用:

// 获取 short version 方法
NSString *shortVersion = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_SHORT_VERSION parameters:nil];
NSLog(@"获取的 short version 为:%@", shortVersion);

日志打印:

获取的 short version 为:4.0.0

4、获取 build version 方法

接口调用:

// 获取 build version 方法
NSString * buildVersion = [SuperSDK invokeString:BCORE_MODULE_TOOLS funcName:BCORE_FUNC_GET_BUILD_VERSION parameters:nil];
NSLog(@"获取的 build version 为:%@", buildVersion);

日志打印:

获取的 build version 为:4.0.0

附录

常量字符串 实际字符串 描述
BCORE_MODULE_TOOLS tools 工具模块名称
BCORE_FUNC_GET_COLLECTIONDATA getCollectionData 获取设备采集数据方法
BCORE_FUNC_JailBreak isJailBreak 判断设备是否越狱方法方法
BCORE_FUNC_GET_LANGUAGE getLanguage 获取当前设备使用的语言方法
BCORE_FUNC_GET_COUNTRY getCountry 获取当前设备设置的国家方法
BCORE_FUNC_CopyToClipboard copyToClipboard 复制到剪切板方法
BCORE_FUNC_ALERT alert 弹原生框方法
BCORE_FUNC_SetScreenLight setScreenLight 设置屏幕亮度方法
BCORE_FUNC_SAVE_DATA saveData 写缓存方法
BCORE_FUNC_GET_DATA getData 读缓存方法
BCORE_FUNC_GET_PACKAGE_NAME getPackageName 获取应用包名方法
BCORE_FUNC_GET_APP_NAME getAppName 获取应用名称方法
BCORE_FUNC_GET_SHORT_VERSION getShortVersion 获取 short version 方法
BCORE_FUNC_GET_BUILD_VERSION getBuildVersion 获取 build version 方法
BCORE_FUNC_GET_INFO_PLIST_VALUE getInfoPlistValue 获取 info.plist 转化为 json 字符串的数据方法