From 80558e51fedde95d521700155ee86a067ad251b2 Mon Sep 17 00:00:00 2001 From: gongxh Date: Tue, 15 Apr 2025 11:22:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=B0=8F=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=9A=84=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + docs/MiniGame.md | 119 ++++++++++++++++++++++++++ src/minigame/interface/IMiniCommon.ts | 2 +- 3 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 docs/MiniGame.md 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; + +/** 获取热启动参数 */ +getHotLaunchOptions(): Record; + +/** 获取基础库版本号 */ +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;