Table of Contents

# Cocos GHome Sdk

  _______  __    __    ______   .___  ___.  _______
 /  _____||  |  |  |  /  __  \  |   \/   | |   ____|
|  |  __  |  |__|  | |  |  |  | |  \  /  | |  |__
|  | |_ | |   __   | |  |  |  | |  |\/|  | |   __|
|  |__| | |  |  |  | |  `--'  | |  |  |  | |  |____
 \______| |__|  |__|  \______/  |__|  |__| |_______|
1
2
3
4
5
6

# 接入文档

所有对外暴露的接口都在 GHomeAPI.h

# 初始化

初始化是所有接口调用的第一步,需要传递两个参数, appid版本号

GHomeAPI::getInstance()->Init("791000xxx", "1.0.0");
1

# 登录

调用 ShowLogin ,第一个是要显示在哪个场景上,第二个是回调,true 表示成功,并且会返回用户信息,false 表示失败

GHomeAPI::getInstance()->ShowLogin(scene, [](bool success, GHUserInfo user) {
    if (success) {
        auto scene = GameScene::createScene();
        Director::getInstance()->replaceScene(scene);
        GHToast::ShowToast(u8"登录成功");
    } else {
        GHToast::ShowToast(u8"登录失败");
        Director::getInstance()->end();
    }
});
1
2
3
4
5
6
7
8
9
10

# 退出

退出只需要调用 logout

GHomeAPI::getInstance()->Logout();
1

# 获取票据

登录成功后可以通过 GetTicket 来获取票据,在回调中获取到 tickettrue 表示成功获取到 ticketfalse 表示失败

GHomeAPI::getInstance()->GetTicket([](bool success, std::string ticket) {
    if (success) {
        GHToast::ShowToast(StringUtils::format(u8"[demo] ticket: %s", ticket.c_str()));
    } else {
        GHToast::ShowToast(u8"[demo] 获取ticket失败");
    }
}
1
2
3
4
5
6
7

# 支付

支付通过调用 Pay 来打开浏览器进行支付

void Pay(cocos2d::Scene *scene, const std::string &areaId, const std::string &groupId, const std::string &productId, const std::string &gameOrder, const std::string &extend, const ghomePayCallback callback);

  • areaId 区 id 必要参数
  • groupId 组 id 必要参数
  • productId 商品 id 必要参数
  • gameOrder 游戏订单号 必要参数
  • extend 扩展字段 不需要传空字符串即可
  • callback 支付回调
GHomeAPI::getInstance()->Pay(scene, "10001", "1", "com.ghsdk.demo.product1", "1", "1", [](long code, std::string msg) {
    if (code == 404 && msg.empty()) {
        msg.append("404");
    }
    ghome::GHToast::ShowToast(StringUtils::format(u8"[demo] %s", msg.c_str()));
});
1
2
3
4
5
6

# 显示隐私

std::string appid = "xxx";
GHomeAPI::getInstance()->ShowAgreement(scene, appid, [=](long code, std::string msg, const GHAgreementStatus& agreement) {
    GHLOG("agreement code %ld", code);
    if (CODE_SUCCESS != code) {
        Director::getInstance()->end();
        return ;
    }
    GHToast::ShowToast(u8"初始化成功");
});
1
2
3
4
5
6
7
8
9

# 自定义隐私 UI

某些场景可能需要自定义隐私弹框,让游戏看起来风格比较统一,这时候可以通过 GetAgreementInfo 来获取隐私协议的内容

std::string appid = "xxx";
GHomeAPI::getInstance()->GetAgreementInfo(appid, [](long code, std::string msg, const GHAgreementStatus& agreement) {
    // 自定义UI
});
1
2
3
4

# 设置同意隐私协议

使用自定义隐私 UI/想要跳过隐私协议,同意之后需要调用 SetUserAgree 告诉 API 已经同意隐私协议

GHomeAPI::getInstance()->SetUserAgree(true, 1);
1

# 编译 demo

编译之前需要安装好 cmake

# 编译 Mac 应用,Xcode 工程

cd proj.ios_mac/mac
cmake ../../ -GXcode
open cocos-ghome-sdk.xcodeproj
1
2
3

# 编译 Windows 应用,Visual Studio 工程

cd proj.win32
cmake .. -G"Visual Studio 15 2017" -A win32
1
2

打开 cocos-ghome-sdk.sln

# 编译 Mac/Linux 应用,手动编译

mkdir build && cd build
cmake ..
make -j8
1
2
3

# 附录

# Cocos版本

  • 当前建议使用 cocos 2dx 4.0 环境运行

# 下载说明

  • cocos 2dx 下载汇总:https://www.cocos.com/cocos2dx-download
  • cocos 2dx 4.0下载:https://cocos2d-x.org/filedown/cocos2d-x-v4.0
Last Updated: 2024/10/26 02:25:11