2.9.1 • Published 5 months ago

falla-game-bridge v2.9.1

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

falla-game-bridge

Falla APP 第三方游戏客户端通讯桥。

Usage

// Cocos 环境下使用require引入
const fallaGameBridge = require('falla-game-bridge');

// 主动退出当前页面
fallaGameBridge.closeWebView();

// 重新加载webview当前网页(房间半屏webview、全屏webview都支持)
fallaGameBridge.reload();

// 重新加载房间半屏 游戏tab 关联的url(仅房间半屏webview有效)
fallaGameBridge.reloadRoomGameTab();

// 跳转金币充值页面
fallaGameBridge.gotoWallet({
  moduleName: 'Slots',
  index: 0,
});

// 充值成功后的回调
fallaGameBridge.onRechargeSuccess(() => {
  // TODO: 获取最新金币更新界面
});

// 监听 webview 显示;如:跳转到充值页面后,返回到webview页面;最小化应用回到当前APP:仅android支持
fallaGameBridge.onWebViewShow(() => {
  // TODO
});

// 监听APP切换到后台:回到系统桌面或切换到其他APP
fallaGameBridge.onAppPause(() => {
  // TODO
});

// 监听APP切回到前台:从系统桌面切回到当前APP的页面
fallaGameBridge.onAppResume(() => {
  // TODO
});

// 监听网页关闭:客户端关闭网页前,先回调web注册的监听事件;执行完成后,在销毁当前页面
fallaGameBridge.onWebviewClose(() => {
  // TODO
});

// 获取用户的设备信息
/**
 * deviceInfo示例:
 {
   "os": "ios",
   "mac": "47b2dd7dc3d31561ef6d4d6ea8835797c8e302f5",
   "platform": 1,
   "language": "zh-Hans",
   "version": "5.0.0",
   "systemVersion": "14.8.1",
   "deviceModel": "iPhone 7 Plus"
 }
 */
const deviceInfo = fallaGameBridge.getUserDeviceInfo();

// 复制字符串,异步方法,返回布尔值
const result = await fallaGameBridge.copy('可复制任意字符');

游戏半屏新增 API(12-14)

// Cocos 环境下使用require引入
const fallaGameBridge = require('falla-game-bridge');

// 增加游戏等级经验值:1经验值 = 1金币
fallaGameBridge.addGameLvPoint({
  point: 10000,
});

// TODO: 检查游戏是否存在金币变
const checkCoinChangeStatus = () => {
  return true;
};

// 1、项目初始化成功后,监听金币同步
fallaGameBridge.onCoinSync(() => {
  const coinChangeStatus = checkCoinChangeStatus();
  if (!coinChangeStatus) {
    return fallaGameBridge.notifyCoinFreeze({
      coinChangeStatus,
    });
  }
  // NOTE: transactionId 字符预估最长的长度为75,组成规则:uid_设备MAC_随机数_时间戳
  // TODO: 如果担心过长,业务方自行MD5或加密,SDK内部不提供加密处理;业务方如果能保证生成的参数唯一,也可以自行生成
  const transactionId = fallaGameBridge.generateTransactionId();
  fallaGameBridge.notifyCoinFreeze({
    coinChangeStatus,
    transactionId,
    appId: 'xxxx',
  });
  // TODO: 与服务端通讯进行金币结算,需传递上面的 transactionId
});

// 2、项目初始化成功后,监听 webview 显示(半屏游戏在房间最小化,再次激活会触发该事件)
fallaGameBridge.onWebViewShow(() => {
  // TODO:获取最新金币更新界面
});

房间半屏进度加载管理

房间半屏弹窗,在打开和切换的时候,会优先显示 APP 的 loading 进度管理,针对 APP 加载流程,暴露了一套 API,需要业务方自行管理好对应的状态。

  • 更新 web 加载进度:updateWebLoadProgress(progress: number)
  • 网页加载完成:webLoadFinish()
  • 网页加载出错:webLoadError()
  • 主动隐藏房间半屏游戏: closePopupWebView()
// 接收整数,为了更好的体验,游戏的进度条默认从50%开始
// 当传递的值>=100时,会自动触发webLoadFinish()
fallaGameBridge.updateWebLoadProgress(100);

// 网页加载完成,隐藏默认Loading界面
fallaGameBridge.webLoadFinish();

// 显示网页加载出错页面
fallaGameBridge.webLoadError();

// 主动隐藏房间半屏游戏
fallaGameBridge.closePopupWebView();
2.9.1

5 months ago

2.9.0

5 months ago

2.8.1

8 months ago

2.8.0

1 year ago

2.7.0

1 year ago

2.6.0

1 year ago

2.5.0

1 year ago

2.4.0

2 years ago

1.7.0

3 years ago

2.3.0

2 years ago

2.2.0

2 years ago

2.1.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.6.0

3 years ago

1.5.0

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago