更新日期:2025年 03月 05日QuickGame(App Store)客户端接入文档
<h3>
<span style="font-size:16px;line-height:2.5;"><span style="line-height:2.5;font-size:16px;">一、SDK结构</span></span>
</h3>
<h4>
<span style="font-size:14px;line-height:2.5;"><span style="line-height:2.5;font-size:14px;">1. SDK核心框架和资源</span></span>
</h4>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325141139kDML119.png" alt="" /><br />
</span></span>
</p>
<p>
<span style="font-size:14px;line-height:2.5;"><span style="line-height:2.5;font-size:14px;">支持平台:iPod Touch,iPhone,iPad</span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">系统要求: iOS7.0+</span><br />
<span style="line-height:2.5;font-size:14px;">支持框架: armv7、arm64 </span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">环境要求: xcode11.0+</span></span></span>
</p>
<p>
<br />
</p>
<h4>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">2. SDK本身支持全方向</span></span></span>
</h4>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">在游戏内SDK 具体的展示方向由游戏的 delegate.window.rootviewcontroller 来决定</span></span></span>
</p>
<p>
<br />
</p>
<h4>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">3. <span style="white-space:normal;font-size:14px;">添加 SDK 文件夹</span></span></span></span>
</h4>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">添加 SDK 文件夹下的所有文件到工程中,并选择游戏所在的 Target,如下图所示:</span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325145134bDPs981.png" alt="" /><br />
注意:如果游戏为 Unity 项目,针对使用 Unity version 2019.3 之后的版本导出的 xcode工程,由于工程中新增了 Target: UnityFramework,导入 SDK 文件时,需要将 SDK 中所有的.framework 和.a 文件添加到 UnityFramework 这个Target;只需要将.bundle 图片等资源文件添加到游戏对应的Target</span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">如下图所示:</span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325145315uy0I435.png" alt="" /><br />
</span></span></span>
</p>
<p>
<br />
</p>
<h3>
<span style="font-size:16px;"><span style="line-height:2.5;font-size:16px;"><span style="line-height:2.5;font-size:16px;">二、注意事项</span></span></span>
</h3>
<p>
<span style="line-height:2.5;"><span style="font-size:14px;line-height:2.5;">游戏内支持购买自动订阅型商品或者需要检测苹果退款时,需要在苹果后台配置服务器通知网址,URL 格式:xxx/notify/apple</span><span style="line-height:2.5;"><span style="font-size:small;">v2</span><span style="font-size:14px;">。其中xxx为厂商sdk的完整域名,必须带 https</span><br />
<img src="https://staticsite.quickapi.net/data/newFiles/20250305/20250305141234wFNb337.jpg" alt="" /><br />
</span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;"> 另外,游戏内支持购买自动订阅型商品还需要在 QuickGame 后台产品详情里配置苹果后台的共享密钥</span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325145838HWJQ958.png" alt="" /><br />
获取苹果后台生成共享秘钥的入口:<br />
<img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325145733Mfrr189.png" alt="" /></span></span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;"><br />
</span></span></span>
</p>
<p>
<br />
</p>
<h3>
<span style="font-size:16px;line-height:2.5;"><span style="line-height:2.5;font-size:16px;">三、接入步骤</span></span>
</h3>
<p>
<span style="font-size:14px;line-height:2.5;color:#E53333;"><span style="line-height:2.5;font-size:14px;color:#E53333;"><strong>特别说明:请参照接入文档接入,如有疑问可参考demo,最终以demo为准</strong></span></span>
</p>
<p>
<span style="font-size:14px;line-height:2.5;color:#E53333;"><span style="line-height:2.5;font-size:14px;color:#E53333;"><strong><br />
</strong></span></span>
</p>
<h4>
<span style="font-size:14px;line-height:2.5;"><span style="line-height:2.5;font-size:14px;">1. 添加SDK</span></span>
</h4>
<p>
添加 SDK ,将 SDK 文件夹导入 xcode 工程中;选择正确的 target
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325150002JAcm233.png" alt="" /><br />
</span></span>
</p>
<p>
<span style="font-size:14px;line-height:2.5;"><span style="line-height:2.5;font-size:14px;">在Build Settings->Linking->Other Linking Flags 中配置 –ObjC</span></span>
</p>
<p>
<span style="font-size:14px;"><span style="line-height:2.5;"> <span style="line-height:2.5;font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325150047jfRG126.png" alt="" /><br />
</span></span></span>
</p>
<p>
<span style="font-size:14px;">将应用的Bundle identifer添加到URL scheme</span>
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325150159I85D194.png" alt="" />
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">2. 配置允许访问 Http 网络</span>
</h4>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325150300tYFj800.png" alt="" /><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">3. SDK 需要申请的权限说明</span>
</h4>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">SDK默认只需要添加相册权限用于保存游客账号信息,info.plist 配置以下内容</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325150342ecrK848.png" alt="" /><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">如果需要使用 QuickAD 广告统计,还需要添加 ATT 权限用于获取 idfa</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/202403251503318NWl962.png" alt="" style="white-space:normal;font-size:14px;" /><br />
</span><span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">如果带有 Quick 云客服系统,需要添加相机和相册权限用于给客服人员发送图片信息</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325150420FBfG100.png" alt="" /><br />
</span><span style="font-size:14px;">接入说明: 可参考 sdk 附带的 demo 和本文档进行接入</span>
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<h3>
<span style="font-size:16px;">四、接口说明</span>
</h3>
<p>
<br />
</p>
<h4>
<span style="font-size:14px;line-height:2.5;">1. SDK初始化(必接)</span>
</h4>
<p>
<span style="font-size:14px;line-height:2.5;">/**<br />
* @brief SDK 平台初始化方法(必接)<br />
* @param productCode 产品 code<br />
* @param completion 初始化结果回调<br />
*<br />
**/<br />
+ (void)initWithProductCode:(NSString *)productCode<br />
completion:(KInitResultBlock)completion; 功能:使用产品id,初始化SDK。 参数:productCode,产品id,必填,对接商务提供<br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2.5;">代码实例:<br />
[JySDKManager initWithProductCode:SDK_PRODUCT_CODE completion:^(Status_CODE<br />
retCode) {<br />
if (retCode == kInitSuccess) {<br />
NSLog(@"初始化成功");<br />
} else {<br />
NSLog(@"初始化失败,错误码:%d",retCode);<br />
}<br />
}];<br />
</span>
</p>
<p>
<span style="font-size:14px;line-height:2.5;"><br />
</span>
</p>
<p>
<br />
</p>
<h4>
<span style="font-size:14px;">2. 展示用户协议和隐私政策弹窗 ( 选接 )</span>
</h4>
<br />
<span style="font-size:14px;">/** 显示用户隐私弹窗, 用户同意返回 YES,不同意返回 NO*/</span><br />
<span style="font-size:14px;">+ (void)showPrivacyViewController:(kPrivacyBlock)isAgreed; </span><br />
<br />
<span style="font-size:14px;">功能:展示 SDK 自带的用户协议和隐私政策,一般在登录之前调用,用户同意协议后调用登录</span>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">3. QuickAD 接入 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;"></span>
</h4>
<p>
<span style="font-size:14px;">在</span><span style="font-size:14px;">- (BOOL)application:(UIApplication *)application</span>
</p>
<p>
<span style="font-size:14px;">didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 调用</span><br />
<span style="font-size:14px;">[JySDKManager initQkAd:@"你的 quickad 参数"];</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">参数传入 Productcode 在 <a href="https://www.quicksdk.com/" target="_blank">QuickSDK聚合后台</a>获取,AD 仅需要初始化,SDK 内部会自行实现统计</span>
</p>
<p>
<br />
</p>
<h4>
<span style="font-size:14px;line-height:2.5;">4. 登录接口</span><span style="font-size:14px;white-space:normal;line-height:2.5;">(必接)</span>
</h4>
<p>
<span style="font-size:14px;white-space:normal;line-height:2.5;">/**<br />
* @brief 调起登录界面(必接)<br />
* @param success 登录成功结果回调,返回用户信息<br />
* @param failure 登录失败结果回调<br />
*/<br />
+ (void)loginWithSuccBlock:(KLoginResultBlock)success<br />
failBlock:(KLoginFailResult)failure;<br />
</span><span style="font-size:14px;">功能:进入用户登录页面。需要在初始化成功之后调用,否则调用无效。游戏开始时可以调用此接口显示一个用户登录界面。在收到用户注销回调后通常处理办法是回到游戏登录界面调用后调用此接口。</span>
</p>
<p>
<span style="font-size:14px;"><span style="font-size:14px;">实例代码:</span><br />
<span style="font-size:14px;">[JySDKManager loginWithSuccBlock:^(NSDictionary *resultDic) {</span><br />
<span style="font-size:14px;">NSString *code = [resultDic objectForKey:@"code"];</span><br />
<span style="font-size:14px;">NSString *token = [JySDKManageruserToken];</span><br />
<span style="font-size:14px;">switch (code.integerValue){</span><br />
<span style="font-size:14px;">case kErrorNone:{</span><br />
<span style="font-size:14px;">NSString *userid = [resultDic objectForKey:@"userId"];</span><br />
<span style="font-size:14px;">NSLog(@"登录成功:n 用户 ID:%@,验证码:%@",userid,token);</span><br />
<span style="font-size:14px;">if([JySDKManager isGuest]){</span><br />
<span style="font-size:14px;">NSLog(@"是游客登录");</span><br />
<span style="font-size:14px;">}else{</span><br />
<span style="font-size:14px;">NSLog(@"非游客登录");</span><br />
<span style="font-size:14px;">}</span><br />
<span style="font-size:14px;">// 登录成功, 上传角色信息</span><br />
<span style="font-size:14px;">GameRole *role = [GameRole new];</span><br />
<span style="font-size:14px;">role.roleId = @"testRoleid"; /// 必传</span><br />
<span style="font-size:14px;">role.role_name = @"testRoleName";</span><br />
<span style="font-size:14px;">role.serverId = @"1";</span><br />
<span style="font-size:14px;">role.sv_name = @"testServer";</span><br />
<span style="font-size:14px;">role.role_level = @"testRoleLevel";</span><br />
<span style="font-size:14px;">role.vipLevel = @"testVipLevel";</span><br />
<span style="font-size:14px;">[JySDKManager updateRoleInfo:role];</span><br />
<span style="font-size:14px;">NSString * age = JySDKManager.getCurrentUserAge;</span><br />
<span style="font-size:14px;">NSLog(@"当前用户 UID=%@,年龄=%@", JySDKManager.userId, age);</span><br />
<span style="font-size:14px;">}</span><br />
<span style="font-size:14px;">break;</span><br />
<span style="font-size:14px;">default:</span><br />
<span style="font-size:14px;">break;</span><br />
<span style="font-size:14px;">}</span><br />
<span style="font-size:14px;">} failBlock:^(NSString *message) {</span><br />
<span style="font-size:14px;">NSLog(@"登录失败:%@",message);</span><br />
<span style="font-size:14px;">}];</span><br />
</span>
</p>
<p>
<span style="font-size:14px;"><span style="font-size:14px;"><br />
</span></span>
</p>
<h4 style="white-space:normal;">
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">5. 充值</span><span style="white-space:normal;line-height:2.5;font-size:14px;">(必接)</span></span></span>
</h4>
<p style="white-space:normal;">
<span style="font-size:14px;">/**</span>
</p>
<p style="white-space:normal;">
<span style="font-size:14px;"><span style="line-height:2.5;"><span style="line-height:2.5;font-size:14px;">* @brief 购买接口(必接)<br />
*<br />
* @param param 充值参数<br />
* @param completion 购买结果回调<br />
*<br />
**/<br />
+ (void)getGoodWithParam:(GoodParam*)param<br />
completion:(KPyResultBlock)completion;<br />
</span></span></span><span style="font-size:14px;"><br />
</span>
</p>
<p style="white-space:normal;">
<span style="font-size:14px;">功能:调起苹果内购</span>
</p>
<p style="white-space:normal;">
<br />
</p>
<p>
<span style="font-size:14px;">参数:param 充值信息,参考 GoodParam.h 文件</span>
</p>
<p>
<span style="font-size:14px;color:#E53333;">注意:其中扩展参数请勿传特殊符号,</span><span style="font-size:14px;color:#E53333;">如果无法避免建议先进行 base64 编码后再传</span><br />
<span style="font-size:14px;">说明:异步充值,sdk 通知的结果仅供参考,<span style="color:#E53333;">以服务器端同步为准</span></span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">6. 静默登录 接口 (选接)</span>
</h4>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 静默登录,不显示登录界面</span><br />
<span style="font-size:14px;">* @param isShowFloatMenu 是否显示浮标</span><br />
<span style="font-size:14px;">* @param success 登录成功回调,包含用户相关信息</span><br />
<span style="font-size:14px;">* @param failure 登录失败回调</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)loginAsGuestWithFloatMenuShow:(BOOL)isShowFloatMenu</span><br />
<span style="font-size:14px;">successBlock:(KLoginResultBlock)success failBlock:(KLoginFailResult)failure;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">功能:静默登录 SDK,不显示登录界面。需要在初始化成功之后调用,否则调用无效</span><br />
<span style="font-size:14px;">参数:isShowFloatMenu 通过传入参数 YES 或者 NO 控制是否显示浮标</span><br />
<span style="font-size:14px;">failure:登录失败回调,回调参数为字符串类型为失败原因</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">代码调用示例:</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">[JySDKManager loginAsGuestWithFloatMenuShow:YES successBlock:^(NSDictionary</span><br />
<span style="font-size:14px;">*resultDic) {</span><br />
<span style="font-size:14px;">NSLog(@"静默登录成功,返回用户信息:%@",resultDic);</span><br />
<span style="font-size:14px;">// 状态码 1000 代表登录成功;各状态码含义请查看 JySDKManager.h</span><br />
<span style="font-size:14px;">NSString *code = [resultDic objectForKey:@"code"];</span><br />
<span style="font-size:14px;">// 用户唯一 id</span><br />
<span style="font-size:14px;">NSString *userId = [resultDic objectForKey:@"userId"];</span><br />
<span style="font-size:14px;">//userToken 用户校验码</span><br />
<span style="font-size:14px;">NSString *token = [JySDKManageruserToken];</span><br />
<span style="font-size:14px;">// 用户名</span><br />
<span style="font-size:14px;">NSString *account = [resultDic objectForKey:@"account"];</span><br />
<span style="font-size:14px;">// 登录方式</span><br />
<span style="font-size:14px;">NSString *loginType = [resultDic objectForKey:@"loginType"];</span><br />
<span style="font-size:14px;">// 登录成功附带消息</span><br />
<span style="font-size:14px;">NSString *message = [resultDic objectForKey:@"message"];</span><br />
<span style="font-size:14px;">} failBlock:^(NSString *message) {</span><br />
<span style="font-size:14px;">NSLog(@"静默登录失败,原因:%@",message);</span><br />
<span style="font-size:14px;">}];</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">7. 微信登录 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">appdelegate 必须实现以下三个方法,可参考 demo</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 微信 QQ 授权登录回调方法, 带第三方登录必接*/</span><br />
<span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application</span><br />
<span style="font-size:14px;">continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void</span><br />
<span style="font-size:14px;">(^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler;</span><br />
<span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application openURL:(NSURL *)url</span><br />
<span style="font-size:14px;">options:(NSDictionary *)options;</span><br />
<span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application openURL:(NSURL *)url</span><br />
<span style="font-size:14px;">sourceApplication:(NSString *)source annotation:(id)annotation;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">info.plist 添加微信白名单,没有 LSApplicationQueriesSchemes就添加一个</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325153724vFIE431.png" alt="" /><br />
</span><span style="font-size:14px;">新版微信需要,2020 年 4 月后接入的需要</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">微信对 Universal Links 配置要求</span><br />
<span style="font-size:14px;">a)Universal Links 必须支持 https</span><br />
<span style="font-size:14px;">b)UniversalLinks 配置的 paths 不能带 query 参数</span><br />
<span style="font-size:14px;">c)微信使用 Universal Links 拉起第三方 App 时,会在 Universal Links 末尾拼接路径</span><span style="font-size:14px;">和参数,因此 App 配置的 paths 必须加上通配符/*</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">在 Signing & Capabilities 添加 Associated Domains,内容: applinks:域名,注意:这里</span><span style="font-size:14px;">域名不带 https</span><br />
<img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325153835rrlD121.png" alt="" /><br />
<span style="font-size:14px;">将微信 appid 参数添加到 info.plist 文件的 URL scheme</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325153904ktFP745.png" alt="" /><br />
</span><span style="font-size:14px;">初始化微信 SDK 在- (BOOL)application:(UIApplication *)application</span><br />
<span style="font-size:14px;">didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 调用</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">调用示例:</span><br />
<span style="font-size:14px;">[JySDKManager initWxLogin:@"wxbacbb624a09218cd"</span><br />
<span style="font-size:14px;">appSecret:@"55e28c7aa650cad991ab918371bab7b4"</span><br />
<span style="font-size:14px;">universalLink:@"https://dl.sxyxserver.com/mqyy/apple-app-site-association/"]</span><br />
<span style="font-size:14px;">;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">8. 微信分享结果回调- - 选接( ( 也可自行转接)</span>
</h4>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">[JySDKManager wxShareResult:^(NSDictionary * _Nonnull resultDic){</span><br />
<span style="font-size:14px;">NSString * msg = [resultDic objectForKey:@"msg"];</span><br />
<span style="font-size:14px;">if ([msg isEqualToString:@"succ"]) {</span><br />
<span style="font-size:14px;">NSLog(@"分享成功");</span><br />
<span style="font-size:14px;">}</span><br />
<span style="font-size:14px;">else if ([msg isEqualToString:@"cancel"]) {</span><br />
<span style="font-size:14px;">NSLog(@"用户取消分享");</span><br />
<span style="font-size:14px;">} else {</span><br />
<span style="font-size:14px;">NSLog(@"分享失败");</span><br />
<span style="font-size:14px;">}</span><br />
<span style="font-size:14px;">}];</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">返回参数类型:字典</span><br />
<span style="font-size:14px;">键:msg</span><br />
<span style="font-size:14px;">值:succ 分享成功</span><br />
<span style="font-size:14px;">fail 分享失败</span><br />
<span style="font-size:14px;">cancel 用户取消分享</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">9. QQ 登录 ( 选接 )</span>
</h4>
<span style="font-size:14px;">
<p>
<span style="font-size:14px;"><br />
</span>
</p>
Appdelegate 必须接入以下方法</span>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application</span><br />
<span style="font-size:14px;">continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void</span><br />
<span style="font-size:14px;">(^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler;</span><br />
<span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application openURL:(NSURL *)url</span><br />
<span style="font-size:14px;">options:(NSDictionary *)options;</span><br />
<span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application openURL:(NSURL *)url</span><br />
<span style="font-size:14px;">sourceApplication:(NSString *)source annotation:(id)annotation;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">info.plist 添加 QQ 白名单 –info.plist 没有 LSApplicationQueriesSchemes 就添加一个</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/202403251543486Hzn855.png" alt="" /><br />
</span><span style="font-size:14px;">将 QQ 的 appid 参数前面拼接 tencent 添加到 info.plist 文件的 URL scheme, 例如 appid 为</span><span style="font-size:14px;">1106580949,则配置如下图所示</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325154405AyLo859.png" alt="" /><br />
</span><span style="font-size:14px;">初始化 QQSDK 在- (BOOL)application:(UIApplication *)application</span><br />
<span style="font-size:14px;">didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 调用</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">代码调用示例:</span><br />
<span style="font-size:14px;">[JySDKManager initQQLogin:@"1106580949" universalLink:@"universalLink"];</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">10. 使用 Apple 登录需要配置 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;">10.1. 加入系统依赖库 AuthenticationServices.framework</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">10.2. 登录开发者网站,在需要添加Sign in with Apple 功能的 Identifier 开启功能</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/202403251545101qjc574.png" alt="" /><br />
</span><span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">10.3. Xcode 里面 Signing & Capabilities 开启 Signin with Apple 功能</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325154536UsUX400.png" alt="" /><br />
</span><span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">11. 配置阿里云一键 登录 ( 选接 )</span>
</h4>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">如果要在登录界面支持显示阿里云一键登录,需在调用登录之前调用如下接口设置</span><span style="font-size:14px;">阿里云一键登录秘钥,并且工程需配置正确的 bundleid</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* @brief 设置阿里云手机号一键登录参数,需在调用 SDK 登录接口之前设置</span><br />
<span style="font-size:14px;">* @param authInfo 阿里云手机号一键登录秘钥</span><br />
<span style="font-size:14px;">*</span><br />
<span style="font-size:14px;">**/</span><br />
<span style="font-size:14px;">+ (void)setPhoneFastLoginAuthInfo:(NSString *)authInfo;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">12. 配置 UC loud 一键 登录 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;">如果要在登录界面支持显示 UCloud 一键登录,需在调用登录之前调用如下接口设置</span><span style="font-size:14px;">UCloud 一键登录 APPID,并且工程需配置正确的 bundleid</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* @brief 设置 UCloud 手机号一键登录参数,需在调用 SDK 登录接口之前设置</span><br />
<span style="font-size:14px;">* @param appid UCloud 手机号一键登录 Appid(UCloud 号码认证平台申请)</span><br />
<span style="font-size:14px;">*</span><br />
<span style="font-size:14px;">**/</span><br />
<span style="font-size:14px;">+ (void)setUCloudLoginWithAppId:(NSString *)appid;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;color:#E53333;">注:UCloud 登录对应的库文件 UnvsSDK.framework为动态库,xcode 工程里需将</span><span style="font-size:14px;color:#E53333;">该文件设置为 Embed & Sign。如下图所示:</span>
</p>
<p>
<span style="color:#e53333;"><span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325154651A9lD619.png" alt="" /><br />
</span></span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* @brief 设置 UCloud 登录页屏幕方向,默认竖屏</span><br />
<span style="font-size:14px;">**/</span><br />
<span style="font-size:14px;">+</span><br />
<span style="font-size:14px;">(void)setUCloudLoginUIInterfaceOrientation:(UIInterfaceOrienta</span><br />
<span style="font-size:14px;">tion)faceOrientation;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">13. 配置易盾一键登录(选接)</span>
</h4>
<p>
<span style="font-size:14px;"><br />
如果要在登录界面支持显示易盾一键登录,需在调用登录之前调用如下接口设置参数,并且工程需配置正确的bundleid</span>
</p>
<p>
<span style="font-size:14px;"><br />
/**<br />
* @brief 设置易盾手机号一键登录参数,需在调用SDK登录接口之前设置<br />
* @param businessID 易盾分配的业务方ID(易盾平台申请),需与bundleID配套<br />
**/<br />
+ (void)setYiDunLoginWithBusinessID:(NSString *)businessID;<br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">14. 配置 TapTap 登录 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;">如果要在登录界面支持显示 TapTap 登录,需在调用登录之前调用如下接口设置</span><span style="font-size:14px;">TapTap 登录 clientID,并且工程需配置正确的bundleid</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* @brief 设置 TapTap登录参数,需在调用 SDK 登录接口之前设置</span><br />
<span style="font-size:14px;">* @param clientID TapTap 后台 clientID 参数</span><br />
<span style="font-size:14px;">*</span><br />
<span style="font-size:14px;">**/</span><br />
<span style="font-size:14px;">+ (void)setTapSDKWithClientID:(NSString *)clientID;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">代码示例:</span><br />
<span style="font-size:14px;">[JySDKManager setTapSDKWithClientID:@"s4amo8nzwsuh0itvlo"];</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;color:#E53333;">注:TapTap 登录对应的库文件 LeanCloudObjc.framework 为动态库,xcode 工</span><span style="font-size:14px;"><span style="color:#E53333;">程里需将该文件设置为 Embed & <span style="color:#E53333;">Sign</span></span><span style="color:#E53333;">。如下图所示:</span></span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325155902rxvr282.png" alt="" /><br />
</span>
</p>
<p>
<span style="font-size:14px;">AppDelegate.m 文件中必须接入以下方法:</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application openURL:(NSURL *)url</span><br />
<span style="font-size:14px;">options:(NSDictionary *)options;</span><br />
<span style="font-size:14px;">+ (BOOL)application:(UIApplication *)application openURL:(NSURL *)url</span><br />
<span style="font-size:14px;">sourceApplication:(NSString *)source annotation:(id)annotation;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">info.plist 添加 TapTap 白名单 –info.plist 没有 LSApplicationQueriesSchemes 就添加一个</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/20240325155944caZL750.png" alt="" /><br />
</span><span style="font-size:14px;">将 TapTap的 clientID 参数前面<span style="color:#E53333;">拼接 tt </span>添加到 info.plist 文件的 URL scheme, 例如 clientID</span><span style="font-size:14px;">为 s4amo8nzwsuh0itvlo,则配置如下图所示:</span>
</p>
<p>
<span style="font-size:14px;"><img src="https://staticsite.quickapi.net/data/newFiles/20240325/2024032516003825iM973.png" alt="" /><br />
</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">15. 设置角色信息(必接)</span>
</h4>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 设置区服角色信息,上传角色信息(必接)</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)updateRoleInfo:(GameRole *)roleInfo;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">功能:设置角色信息,在选择角色进入游戏时调用</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">16. 获取用户 ID ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 获取用户 id。如未登录,返回空。</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (NSString *)userId;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">功能:获取当前登录用户的用户 ID。在用户登录成功后调用</span><br />
<span style="font-size:14px;">返回值:当前登录用户的用户 ID,未登录返回 nil</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">17. 获取用户年龄 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 获取当前登录用户年龄 */</span><br />
<span style="font-size:14px;">+ (NSString *)getCurrentUserAge;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">功能:获取当前登录用户的用户年龄。在用户登录成功后调用</span><br />
<span style="font-size:14px;">返回值:当前登录用户的用户年龄,未登录或者未实名返回 0</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">18. 获取登陆后 token ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 获取用户校验码,用于到服务器端验证用户真实性。</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (NSString *)userToken;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">功能:获取当前登录用户的用户 token。用户登录成功时调用</span><br />
<span style="font-size:14px;">返回值:当前登录用户的用户 token,用以验证用户有效性,未登录返回 nil</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">19. 退出登录 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 退出登录,注销 SDK 账号,隐藏悬浮球</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)logout:(kLogoutBlock)block;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">功能:立即将当前用户登出</span><br />
<span style="font-size:14px;">设置退出登录回调方法,.h 设置KAcountDelegate 代理:</span><br />
<span style="font-size:14px;">block 用户退出回调可以传 nil;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">监听用户通过个人中心退出登录:</span><br />
<span style="font-size:14px;">//设置代理,监听用户退出事件</span><br />
<span style="font-size:14px;">[JySDKManager defaultManager].acountDelegate = self;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">实现代理方法,监听用户退出和注册账号事件:</span><br />
<span style="font-size:14px;">#pragma mark -- KAcountDelegate</span><br />
<span style="font-size:14px;">- (void)userLogout:(NSDictionary *)resultDic</span><br />
<span style="font-size:14px;">{</span><br />
<span style="font-size:14px;">NSLog(@"用户从个人中心手动登出。n%@",resultDic);</span><br />
<span style="font-size:14px;">[self login:nil];</span><br />
<span style="font-size:14px;">}</span><br />
<span style="font-size:14px;">- (void)userRegister:(NSString*)uid</span><br />
<span style="font-size:14px;">{</span><br />
<span style="font-size:14px;">NSLog(@"注册账号:%@",uid);</span><br />
<span style="font-size:14px;">}</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">用户从个人中心注销时回调,这时应该回到游戏登录界面并调用 SDK 的登录接口,不应该调用</span><span style="font-size:14px;">快捷登录接口</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">20. 配置是否显示游客登录 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 配置是否显示游客试玩 YES 显示 NO 隐藏默认显示*/</span><br />
<span style="font-size:14px;">+ (void)configGuestLoginShow:(BOOL)show;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">参数:show YES 不显示游客登录按钮 NO 展示游客登录按钮</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">21. 恢复购买非消耗品接口 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">恢复已购买的非消耗品或者自动订阅商品</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)restoreNonConsumptionProducts:(KPyResultBlock)resultBlock;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">回调字典 resutDic:</span><br />
<span style="font-size:14px;">code == KorderRestoreSucc 恢复成功 extInfo 会附带恢复购买的 productid</span><br />
<span style="font-size:14px;">code == KorderRestoreFail 恢复失败 message 会附带失败原因</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">22. 进入用户中心 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 调起个人中心页面</span><br />
<span style="font-size:14px;">**/</span><br />
<span style="font-size:14px;">+ (void)showUserCenter;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">功能:进入用户中心页面,显示关联其他平台账号的信息和操作入口</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">23. 进入客服中心 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 调起客服中心页面</span><br />
<span style="font-size:14px;">**/</span><br />
<span style="font-size:14px;">+ (void)showServiceCenter;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">24. 悬浮窗 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">显示悬浮窗</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 显示浮悬窗 isLeft:是否在左边centery:中心点 y 值*/</span><br />
<span style="font-size:14px;">+ (void)showFloatMenuBtnWithIsLeft:(BOOL)isleft</span><br />
<span style="font-size:14px;">andWithCenterY:(CGFloat)centery;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">isLeft:YES 在屏幕左边 NO 在屏幕右边</span><br />
<span style="font-size:14px;">centery:悬浮窗中心点 Y 坐标</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">隐藏悬浮窗</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 隐藏悬浮窗*/</span><br />
<span style="font-size:14px;">+ (void)hideFloatMenuBtn;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">设置悬浮窗半隐藏时透明度</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 设置悬浮窗隐藏时透明度 alpha 为 0-1,0 透明 1 不透明*/</span><br />
<span style="font-size:14px;">+ (void)configFloatAlpha:(CGFloat)alpha;</span><br />
<span style="font-size:14px;">alpha:取值范围为 0 到 1 浮点数</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">25. 销毁 当前账号(选接)</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**注销当前账号 */</span><br />
<span style="font-size:14px;">+ (void)deleteCurrentAccount;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">功能:彻底删除当前账号,不可恢复</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">26. 禁止自动登( ( 选接,自动登录默认开启) )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 设置是否自动登录,默认自动登录 YES*/</span><br />
<span style="font-size:14px;">+ (void)setNeedAutoLogin:(BOOL)autoLogin;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">yes 开启自动登录 NO 关闭自动登录</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">27. 监听实名认证回调 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 实名认证回调须在实名认证之前设置 */</span><br />
<span style="font-size:14px;">+ (void)completeRealName:(realNameResult)resultBlock;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">block 回调:</span><br />
<span style="font-size:14px;">isComplete yes 完成实名认证 no 未完成实名认证</span><br />
<span style="font-size:14px;">age:用户实名认证成功返回实际年龄否则返回 0</span><br />
<span style="font-size:14px;">source: 调起实名认证场景1 登录调起 2 用户主动调起3 支付调起 4 用户中心进入</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">代码调用示例:</span><br />
<span style="font-size:14px;">[JySDKManager completeRealName:^(BOOL isComplete, NSInteger age, NSInteger</span><br />
<span style="font-size:14px;">source) {</span><br />
<span style="font-size:14px;">NSLog(@"%@年龄%ld",isComplete ? @"完成实名认证":@"未完成实名认证",</span><br />
<span style="font-size:14px;">(long)age);</span><br />
<span style="font-size:14px;">}];</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;color:#E53333;">注:该接口需在用户实名认证前设置</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">28. 判断用户是否实名认证 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/** 用户是否已实名认证 */</span><br />
<span style="font-size:14px;">+ (BOOL)isRealName;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">返回值:</span><br />
<span style="font-size:14px;">YES:已经实名认证</span><br />
<span style="font-size:14px;">NO:尚未实名认证</span><br />
<span style="font-size:14px;">须在登录成功之后调用</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">29. 新增移除 SDK 内购监听 (选接)</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">+ (void)removeListener;</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;color:#E53333;">tips:若游戏要自行实现内购苹果功能可调用该方法移除 SDK 内购监听,否则千万不要调</span><span style="font-size:14px;color:#E53333;">用</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">30. TapDB 数据统计 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 初始化 TapDB 接口(必接),调用该接口后默认统计了初始化,登录,支付,角色信息</span><br />
<span style="font-size:14px;">* appid 注册游戏时获得的 APP ID</span><br />
<span style="font-size:14px;">* currencyType 支付统计货币类型 , 参考 :币 人民币 CNY ,元 美元 USD ;元 欧元 EUR , 传空时默认@"CNY"</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)tapDBInitWithAppID:(NSString *)appid currencyType:(NSString</span><br />
<span style="font-size:14px;">*)currencyType;</span><br />
<span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 自定义事件(选接) ,统计 TapDB 其他自定义事件,按需选接</span><br />
<span style="font-size:14px;">* eventCode 事件 code ,需要在控制后台预先配置</span><br />
<span style="font-size:14px;">* properties 事件属性,具体字段需要在控制后台预先配置</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)tapDBEvent:(NSString *)eventCode properties:(NSDictionary</span><br />
<span style="font-size:14px;">*)properties;</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h4>
<span style="font-size:14px;">31. AppsFlyer 数据统计 ( 选接 )</span>
</h4>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">* 初始化 appsflyer (必接)</span><br />
<span style="font-size:14px;">* @param devKey AppsFlyer devKey</span><br />
<span style="font-size:14px;">* @param appID AppsFlyer appID</span><br />
<span style="font-size:14px;">* @param Sandbox 支付验证是否用沙盒模式,不传默认为 NO( 正式模式), 注意:出正式提审包时一</span><br />
<span style="font-size:14px;">定要设置为 NO</span><br />
<span style="font-size:14px;">* *@param currency 设置 AF 统计货币类型,可传 nil 或空字符串则使用默认的 USD</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)setAppsFlyerDevKey:(NSString *)devKey appleAppID:(NSString*)appID</span><br />
<span style="font-size:14px;">useReceiptValidationSandbox:(BOOL)Sandbox currencyType:(NSString *)currency;</span><br />
<span style="font-size:14px;">/**</span><br />
<span style="font-size:14px;">*AppsFlyer 自定义事件接口(选接)</span><br />
<span style="font-size:14px;">*</span><br />
<span style="font-size:14px;">@param eventName 自定义事件名从 从 AppsFlyerLib.framework 的`AppsFlyerTracker.h` 的预</span><br />
<span style="font-size:14px;">定义常量中获取</span><br />
<span style="font-size:14px;">@param values 参数字典(可传空),key 值从`AppsFlyerTracker.h` 的预定义常量中获取</span><br />
<span style="font-size:14px;">调用示例:</span><br />
<span style="font-size:14px;">[REDeLoginKit afTrackEvent:AFEventPurchase</span><br />
<span style="font-size:14px;">withValues: @{AFEventParamRevenue : @200,</span><br />
<span style="font-size:14px;">AFEventParamCurrency : @"USD",</span><br />
<span style="font-size:14px;">AFEventParamQuantity : @2,</span><br />
<span style="font-size:14px;">AFEventParamContentId: @"092",</span><br />
<span style="font-size:14px;">AFEventParamReceiptId: @"9277"}];</span><br />
<span style="font-size:14px;">*/</span><br />
<span style="font-size:14px;">+ (void)afTrackEvent:(NSString*)eventName withValues:(NSDictionary *</span><br />
<span style="font-size:14px;">_Nullable)values;</span><br />
<span style="font-size:14px;">/** 获取 AppsFlyerUID (选接)*/</span><br />
<span style="font-size:14px;">+ (NSString *)getAppsFlyerUID ;</span>
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<h3>
<span style="font-size:14px;">五、自定义UI 配置(选接)</span>
</h3>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">描述:sdk 支持自定义背景图以及自定义文本颜色</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">登录界面顶部默认为文字标题(登录),可自行更改为 logo 图片</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">logo 位置顶部居中。名称设为 logo_head@2x.png, logo_head @3x.png 放置到</span><span style="font-size:14px;">jywlRes.bundle 文件夹内即可</span><br />
<span style="font-size:14px;">logo_head @2x.png 尺寸为:320*72</span><br />
<span style="font-size:14px;">logo_head @3x.png 尺寸为:480*108</span><br />
<span style="font-size:14px;">Bundle 里面图片都可以替换,找到需要替换的图片,新建一个同名同尺寸的图片替换即</span><span style="font-size:14px;">可。其中 sdk 背景图片名称前缀为 log_back</span><br />
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">自定义颜色设置</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span><span style="font-size:14px;">颜色设置统一采用 16 进制</span><br />
<span style="font-size:14px;">在 bundle 中找到 ColorStyle.plist文件,修改对应位置颜色设置。建议根据背景图片来配</span><span style="font-size:14px;">置</span>
</p>