Table of Contents
# Cocos GHome Sdk
_______ __ __ ______ .___ ___. _______
/ _____|| | | | / __ \ | \/ | | ____|
| | __ | |__| | | | | | | \ / | | |__
| | |_ | | __ | | | | | | |\/| | | __|
| |__| | | | | | | `--' | | | | | | |____
\______| |__| |__| \______/ |__| |__| |_______|
1
2
3
4
5
6
2
3
4
5
6
# 接入文档
所有对外暴露的接口都在 GHomeAPI.h
中
# 初始化
初始化是所有接口调用的第一步,需要传递两个参数, appid
和 版本号
- appid:由公司平台统一分配
- 版本号:游戏app主体版本号(建议严格准守软件版本号使用规范和原则,程序包版本编号 (opens new window))
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
2
3
4
5
6
7
8
9
10
# 退出
退出只需要调用 logout
GHomeAPI::getInstance()->Logout();
1
# 获取票据
登录成功后可以通过 GetTicket
来获取票据,在回调中获取到 ticket
, true
表示成功获取到 ticket
, false
表示失败
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
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
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
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
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
2
3
# 编译 Windows 应用,Visual Studio 工程
cd proj.win32
cmake .. -G"Visual Studio 15 2017" -A win32
1
2
2
打开 cocos-ghome-sdk.sln
# 编译 Mac/Linux 应用,手动编译
mkdir build && cd build
cmake ..
make -j8
1
2
3
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