前置条件
添加 H5 小游戏 SDK 前,请确保已经接入工程到 mPaaS。
选择基线
H5 小游戏支持定制基线版本。请参照 选择合适的基线 指南,添加 cp_change_56100909 基线以完成配置。
安装组件
在 app 的 build.gradle 中安装 nebula 组件依赖。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.so'])
// 基线
implementation platform("com.mpaas.android:$mpaas_artifact:$mpaas_baseline")
// nebula组件
implementation 'com.mpaas.android:nebula'
...
}配置
在项目的 assets 下添加 config 目录,并在 config 目录下添加 custom_config.json 配置文件。

文件内容如下:
[
{
"key": "h5_support_litegame",
"value": "YES"
}
]打开 H5 游戏
H5 游戏支持 在线链接游戏 和 离线包游戏。
在线链接游戏
MPNebula.startUrl("xxx"); // xxx为在线游戏的链接可以通过启动参数控制游戏页面的标题栏、全屏等效果。更多内容请参考 启动参数。
离线包游戏
离线包形式主要优化游戏在线资源加载耗时,提升体验。更多内容请参考离线包简介。
打开离线包游戏
MPNebula.startApp("xxx"); // xxx为离线包id离线包的发布管理
请参考 H5 离线包管理。
账号授权
游戏需要依赖 App 的账号,需要 App 注入用户 openId/userId。在 mPaaS 初始化完成后需设置如下内容。
H5Utils.setProvider(H5OpenUserInfoProvider.class.getName(), new H5OpenUserInfoProvider() {
/**
*
* @param gameId 游戏h5链接或者离线id
* @param page 页面信息
* @param callback 回调
*/
@Override
public void onGetOpenUserInfo(String gameId, H5Page page, OpenUserCallback callback) {
Map<String, String> openUserInfo = new HashMap();
openUserInfo.put("openId", "xxxx"); // 用户id,必须
openUserInfo.put("userName", "xxxx"); // 用户昵称,非必须
if (callback != null) {
callback.onCallback(openUserInfo);
}
}
});IAA 游戏广告
方式一
穿山甲广告类型(内部唤起穿山甲,外部提供广告位即可):mPaaS 初始化完成后设置。
H5Utils.setProvider(H5AdCodeProvider.class.getName(), new H5AdCodeProvider() {
/**
*
* @param gameId 游戏id: 游戏的在线链接或者离线id
* @param page 游戏页面对象
* @param adType 广告类型:0 激励视频广告; 1 banner广告; 2 插屏/全屏广告。 目前只有激励视频类型
* @param callback 广告code回调
*/
@Override
public void onGetAdCode(String gameId, H5Page page, int adType, GameAdInfoCallback callback) {
Map<String, String> adInfo = new HashMap();
if (adType == 0) { // h5游戏只有激励视频的情况
adInfo.put("code", "xxx"); // 添加广告位信息
} else {
}
if (callback != null) {
callback.onCallback(adInfo);
}
}
});方式二
其他广告类型(外部唤起激励视频广告,并在下发奖励时给回调): mPaaS 初始化完成之后设置。
H5Utils.setProvider(H5AdShowProvider.class.getName(), new H5AdShowProvider() {
/**
*
* @param gameId 游戏id: 游戏的在线链接或者离线id
* @param page 游戏页面对象
* @param type 广告类型:0 激励视频广告; 1 banner广告; 2 插屏/全屏广告。 目前只有激励视频类型
* @param gameAdShowCallback 广告展示相关回调
*/
@Override
public void showAd(String gameId, H5Page page, int type, GameAdShowCallback gameAdShowCallback) {
// 自行展示激励视频弹窗广告,并做相应回调
}
});广告展示回调 GameAdShowCallback:
public interface GameAdShowCallback {
/**
* 广告展示回调
*/
void onShow();
/**
* 广告关闭回调
*/
void onClose();
/**
* 广告奖励下发回调
*/
void onReward();
/**
* 广告出错回调
*/
void onError(String code, String message);
}该文章对您有帮助吗?