diff --git a/README.md b/README.md index ee30f77..bcb998c 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ npm install kunpocc 14. [小工具](./docs/Tools.md) 15. [时间](./docs/Time.md) 16. [socket网络模块](./docs/Socket.md) +17. [小游戏接口封装](./docs/MiniGame.md) ## 类型支持 该库完全使用 TypeScript 编写,提供完整的类型定义文件。 diff --git a/docs/MiniGame.md b/docs/MiniGame.md new file mode 100644 index 0000000..3beb8a7 --- /dev/null +++ b/docs/MiniGame.md @@ -0,0 +1,119 @@ +## 小游戏接口 + +### 特点 + +* 封装小游戏常用接口,一套api,适用多平台 +* 支持微信小游戏、支付宝小游戏、抖音小游戏 + +### 支持 + +* 常用小游戏api + +* 广告 +* 小游戏android支付 + +### 使用 + +##### 通用接口 + +```typescript +/** 获取冷启动参数 */ +getLaunchOptions(): Record<string, any>; + +/** 获取热启动参数 */ +getHotLaunchOptions(): Record<string, any>; + +/** 获取基础库版本号 */ +getLibVersion(): string; + +/** + * 获取运行平台 合法值(ios | android | ohos | windows | mac | devtools | iPad) + * 微信上 iPad 会返回 ios + */ +getPlatform(): 'ios' | 'android' | 'ohos' | 'windows' | 'mac' | 'devtools' | 'iPad'; + +/** + * 获取运行类型 + * 合法值(release | debug) + */ +getEnvType(): 'release' | 'debug'; + +/** 宿主程序版本 (这里指微信、抖音、支付宝版本) */ +getHostVersion(): string; + +/** 获取屏幕尺寸 */ +getScreenSize(): { width: number, height: number }; + +/** 退出小程序 */ +exitMiniProgram(): void; + +/** 复制到剪切板 */ +setClipboardData(text: string): void; +``` + +##### 广告 + +* 初始化 + + ```typescript + // 初始化广告 传入广告ID + MiniHelper.ad().init(adUnitId); + ``` + +* 展示广告 + + ```typescript + // 展示广告 + MiniHelper.ad().showAds({ + success: () => { + log("广告展示完成,发放奖励") + }, + fail: (errCode: number, errMsg: string) => { + log("广告展示失败 code:" + errCode + " msg:" + errMsg); + } + }); + ``` + +##### 支付 + +* 初始化 + + ```typescript + /** + * 初始化 (不需要的参数传null) + * @param offerId 商户号 (只有微信小游戏需要) + * @param unitPriceQuantity 1元可以购买的游戏币数量 + */ + MiniHelper.pay().init(offerId, unitPriceQuantity); + ``` + +* 判定 + + ```typescript + /** 统一价格限制列表 (微信、支付宝和字节 取交集) */ + const PriceLimitList = [1, 3, 6, 8, 12, 18, 25, 30, 40, 45, 50, 60, 68, 73, 78, 88, 98, 108, 118, 128, 148, 168, 188, 198, 328, 648, 998, 1998, 2998]; + + /** + * 是否满足限定的价格等级 这里为了保持多平台统一,抽取了一部分价位 + * @param rmb 价格 (元) + * @returns 是否满足限定的价格等级 + */ + MiniHelper.pay().isPayable(rmb); + ``` + +* 拉起支付 + + ```typescript + MiniHelper.pay().pay({ + rmb: 1, // 拉起支付的价格(元) + orderId: "唯一订单号", + shopId: "商品id 字符串", + shopName: "商品名", + success: () => { + kunpo.log("支付调用成功 去服务端验单"); + }, + fail: (res) => { + kunpo.log("支付调用失败", res.errCode, res.errMsg); + } + }); + ``` diff --git a/src/minigame/interface/IMiniCommon.ts b/src/minigame/interface/IMiniCommon.ts index b132046..c69056d 100644 --- a/src/minigame/interface/IMiniCommon.ts +++ b/src/minigame/interface/IMiniCommon.ts @@ -32,7 +32,7 @@ export interface IMiniCommon { getEnvType(): 'release' | 'debug'; /** - * 宿主程序版本 (这里指微信版本) + * 宿主程序版本 (这里指微信、抖音、支付宝版本) */ getHostVersion(): string;