README
@ysfe/h5-core-sdk
游戏猫 - 通用 SDK - 接入服务
接入前准备
- 检查环境配置
node 版本: > node 10.18.0
typescript: 支持 (建议)
- 申请 AppId
申请方式请联系对接同学索要.
使用方式
安装依赖
- npm:
npm install @ys/common-sdk - yarn:
yarn add @ys/common-sdk
CommonJS 接入示例
import CommonSDK from '@ys/common-sdk'
/** 实例化 SDK */
const sdk = new CommonSDK({
appid: '' // * 必填项
})
/** sdk 初始化 */
sdk.init().catch((e) => {
alert(e?.message ?? e)
})
/** 调用登录 */
sdk.support.login()
/** demo: 调用登录, 并在登录成功后立即拉起支付 */
sdk.support
.login()
.then(() => {
console.log('登录成功')
// 拉起支付
sdk.support.pay({
/* ... */
})
})
.catch((e) => {
console.error('登录失败', e)
})
/** 全局监听关闭事件回调 */
sdk.on('exit', () => {
console.warn('退出游戏')
window.close()
})
/** 全局使用 */
// 方式 1: 作为 window 变量向全局暴露
window.sdk = sdk
// 方式 2: 导出变量使用
export const sdk = sdk
UMD 接入示例
准备工作
<html>
<head>
<!-- 添加script引用 -->
<script src="http://play.jin908.com/h5sdk/yxm.js" defer />
</head>
</html>
// use
const sdk = new window.CoreSDK({
appid: '' // TODO 待从融合返回值中增加的 appId 参数.
})
// 其他的直接从 融合发起方法调用即可.
注意事项
- 如果是 typescript 项目, 使用 window 变量导出时, 需要新建一个
.d.ts文件, 定义下 window 变量.
import CommonSDK from '@ys/common-sdk'
declare interface Window {
sdk: CommonSDK
}
类型定义
SDKEventType
type SDKEventType = 'init' | 'login' | 'logout' | 'exit'
SDK 支持方法
sdk
| 方法/属性 | 描述 | 备注 |
|---|---|---|
| init | sdk 初始化 | 必接, 否则后续无法进行 |
| support | sdk 支持能力 | |
| on | 绑定事件 | 注意, 同一事件, 仅存在 1 个事件绑定 |
| off | 解绑事件 |
sdk.support
| 方法/属性 | 方法描述 | 参数 | 是否必接 |
|---|---|---|---|
| login | 登录游戏 | 是 | |
| logout | 游戏注销 | 是 | |
| exit | 退出游戏 | 是 | |
| submitRoleInfo | 提交角色信息 | { /** 用户标识 */ openId: string /** 角色 id */ roleId: string /** 角色名 */ roleName: string /** 角色等级 */ roleLevel: string /** 服务器 id */ serverId: string /** 服务器名称 */ serverName: string } |
|
| pay | 发起支付 | { /** 金额(单位:元) */ price: number /** 通知发货地址 */ notifyUrl: string /** 商品名称 */ productName: string /** 商品介绍 */ productDesc: string /** cp 订单 ID */ outTradeId: string /** 角色 id */ roleId: string /** 角色名 */ roleName: string /** 服务器 id */ serverId: string /** 服务器名称 */ serverName: string } |
sdk.on
参数说明 | 属性 | 类型 | 说明 | | --- | --- | --- | | event | SDKEventType | 事件名 | | callback | (res: {
success: boolean;
errMsg?: string;
data?: any
}) => void | 回调结果 |调用示例
sdk.on('exit', (res) => {
const { success, data, errMsg } = res
})
- 返回值
- sdk
- 支持连续绑定
sdk.on('login', (res) => {
const { success, data, errMsg } = res
}).on('exit', (res) => {
const { success, data, errMsg } = res
})
sdk.off
参数说明 | 属性 | 类型 | 说明 | | --- | --- | --- | | event | SDKEventType | 事件名 |
调用示例
sdk.off('exit')
- 返回值
- 无