网络知识 娱乐 独立开发者接入防沉迷尽然如此简单?-TapTap 防沉迷模块iOS版

独立开发者接入防沉迷尽然如此简单?-TapTap 防沉迷模块iOS版

准备事项:

        1.下载TapTap SDK最新版本。

        2.准备好开发工具。

        3.注册TapTap 开发者。

        4.在开发者后台,提开启防沉迷的工单(记住这个一定要提,不然会有未通过提示哦)。

        

TapTap SDK 地址

资源下载 | TapTap 开发者文档中心,找到合适的SDK 下载即可。

新手引导接入文档

实名认证和防沉迷开发指南 | TapTap 开发者文档中心。

TapTap 开发文档

概览 | TapTap 开发者文档中心

这里以iOS接入为列子。

首先我们先初始化TapTap SDK。

详细可以见TapTap 开发文档。

首先初始化防沉迷,这里基本就照搬文档上的即可。

添加需要的头文件

#import 
#import 
    NSString *gameIdentifier = @"游戏的 Client ID";
    AntiAddictionConfiguration *config = [AntiAddictionConfiguration alloc];
    // 是否启用消费限制功能
    config.useSdkPaymentLimit = YES;
    // 是否启用时长限制功能
    config.useSdkOnlineTimeLimit = YES;
    
    [AntiAddiction initGameIdentifier: gameIdentifier
                  antiAddictionConfig: config
        antiAddictionCallbackDelegate: self
                    completionHandler: ^(BOOL success) {
                        if (success) {
                            // 初始化成功
                            NSLog(@"[ldyy taptap] 防沉迷初始化成功");
                        }
                    }];

Client ID,可以在TapTap控制台查看(开发者中心 > 你的游戏 > 游戏服务 > 应用配置)。

平台登录成功开始调用验证防沉迷模块,代码如下:

///开始实名认证
///如果是taptap 登录 isTapLogin = YES, userId = @""
///其他登录 isTapLogin = NO, userid = 平台唯一用户标识符,这里我推荐 用平台的unionid来代替
-(void) startAddiction:(BOOL) isTapLogin userId:(NSString*)userId {
    if(isTapLogin == YES) {
        TTSDKAccessToken *accessToken   = [TapLoginHelper currentAccessToken];
        NSString *tapTapAccessToken     = [accessToken toJsonString];
        TTSDKProfile *currentUser       = [TapLoginHelper currentProfile];;
        NSString *userIdentifier        = currentUser.unionid;
        //开始防沉迷验证
        [AntiAddiction startUpUseTapLogin: isTapLogin
                           userIdentifier: userIdentifier
                          tapAccesssToken: tapTapAccessToken];
    }
    else {
        //第三方登录的防沉迷验证
        [AntiAddiction startUpUseTapLogin: isTapLogin
                           userIdentifier: userId
                          tapAccesssToken: @""];
    }
}

实现防沉迷模块的Callback:

这里别忘了添加 AntiAddictionDelegate

- (void)antiAddictionCallbackWithCode:(AntiAddictionResultHandlerCode)code extra:(NSString *)extra {
    //AntiAddictionResultHandlerLoginSuccess = 500, //玩家登录后判断当前玩家可以进行游戏
    //AntiAddictionResultHandlerLoginLogout = 1000, //退出账号
    //AntiAddictionResultHandlerTimeLimit = 1030,   //未成年玩家当前无法进行游戏
    //AntiAddictionResultHandlerOpenAlert = 1095,   //未成年允许游戏弹窗
    //AntiAddictionResultHandlerRealNameStop = 9002 //实名过程中点击了关闭实名窗
    
    if(code == AntiAddictionResultHandlerLoginSuccess) {
        //这里做防沉迷验证成功的回调,可以进入游戏或者其他操作
    }
    else if(code == AntiAddictionResultHandlerLoginLogout) {
    }
    else if(code == AntiAddictionResultHandlerTimeLimit) {
        //这里可以做无法进入游戏的提示或者其他操作
    }
    else if(code == AntiAddictionResultHandlerOpenAlert) {
    }
    else if(code == AntiAddictionResultHandlerRealNameStop) {
        //这里可以用来做关闭防沉迷界面后提示
    }
    
    //extra 的返回数据{"promptType":0,"extraSource":3,"forceOpen":false,"title":"","restrictType":0,"description":"登录成功","userType":18}
    //主要参数介绍
    //restrictType 限制类型 "0",无限制(成年玩家) "1",有限制(未成年玩家)
    //description 显示给玩家的提示内容
    //title 显示给玩家的提示标题
    
    if([DGStringUtils isBlankString:extra]) {
        return;
    }
    
    NSDictionary * dic = [JSONTool objectFromJSONString:extra];
    NSInteger restrictType = (NSInteger) [dic objectForKey:@"restrictType"];
    if(restrictType == 1) {
        //这里可以来做未成年的各种判断,比如游戏剩余时间啥的。
    }
}

最后独立游戏常用防沉迷的几个方法:

///获取玩家的年龄段
[AntiAddiction getCurrentUserAgeLimite];
///获取游戏剩余时间
[AntiAddiction getCurrentUserRemainTime];
///上报开始游戏
[AntiAddiction enterGame];
///上报离开游戏
[AntiAddiction leaveGame];

整理不易,关注收藏不迷路。

作者qq:84604891

qq群:680592435