更新记录
1.0.3(2026-09-15) 下载此版本
- 【重要修复】解决插件引入即白屏问题:
- 将所有 HarmonyOS 模块改为懒加载模式,避免在插件引入时执行可能失败的 require()
- 增加 try-catch 包裹所有可能抛出异常的操作
- 所有方法改为返回友好错误对象,不再抛出未捕获的异常(避免白屏)
- 添加模块缓存机制,避免重复加载
init()即使获取 Context 失败也标记为已初始化,让后续调用更友好地处理
- 【重要修复】Context 获取逻辑优化:
- 新增
_tryGetContextSafe()方法,尝试多种方式获取 Context - 支付/分享/登录方法中使用最新的 Context,而非缓存的 Context
- 当 Context 为 null 时返回友好错误提示,而非崩溃
- 新增
- 【重要修复】API 契约优化:
pay()未初始化或失败时返回ZyPayResult对象(code: 'fail')share()未初始化或失败时返回ZyShareResult对象(success: false)login()未初始化或失败时返回ZyLoginResult对象(userId: ''),包含错误信息- 所有方法不再抛出异常,保证应用不会因此崩溃
1.0.2(2026-09-14) 下载此版本
- 完善 displayName/description/keywords(新增 harmony/uni-app-x/PaymentKit/ShareKit/AccountKit 等关键词)
init增加支付/分享/账号三大系统模块的存在性探活(debug 模式打印),便于早期发现 SDK/版本不匹配init/pay/share/login增加isInited守卫;未 init 时pay/share不抛错而是返回标准失败结果(与现有契约兼容)pay增加options空值校验与orderInfo空字符串校验,错误信息统一前缀share增加“title/text/url/imagePath/filePaths 至少给一项”的入参校验,避免空分享拉起safeParseJson兼容非字符串入参;engine.getContextSafe增加globalThis.getContext?.()兜底- 对外 API 新增
isInited()方法,业务侧可安全判断是否已初始化
1.0.1(2026-03-20) 下载此版本
- 修复:空包问题
#
查看更多平台兼容性
uni-app(4.45)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.45)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | √ | - |
zy-next-psl(鸿蒙 Next 支付/分享/登录 三合一原生 UTS 插件)
简介
zy-next-psl 是面向 HarmonyOS NEXT(API 11+) 的三合一原生插件,包含:
- 原子支付:调用系统原子支付能力(不接入微信/支付宝等第三方 SDK)
- 系统分享:调用系统分享面板
- 账号登录:基于系统账号体系(OS Account / AppAccount)获取账号标识
插件仅封装系统原生 API:无第三方 SDK 依赖、无 token 消耗。支付“下单/签名/风控”等仍应由你的业务服务端完成。
安装
将本插件目录 zy-next-psl 复制到项目的 uni_modules/ 下即可。
API
入口:
import { zyNextPayShareLogin } from '@/uni_modules/zy-next-psl/utssdk/index.uts'
1) init(options?)
await zyNextPayShareLogin.init({
debug: true,
// 推荐:传入 Harmony context(UIAbility/Stage context),避免部分运行时拿不到
context: (globalThis as any).__uniContext
})
2) pay(options)
const res = await zyNextPayShareLogin.pay({
// 业务服务端返回的支付参数(建议 JSON 字符串,插件内部会 best-effort 解析)
orderInfo: '{"amount":1,"tradeNo":"..."}',
attach: 'order_123'
})
3) share(options)
await zyNextPayShareLogin.share({
title: '分享标题',
text: '分享内容',
url: 'https://example.com'
})
4) login(options?)
const user = await zyNextPayShareLogin.login({ preferOsAccount: true })
// user.userId: "os:100" 或 "app:xxx"
鸿蒙权限与配置(重要)
插件会在需要时 best-effort 触发系统授权弹窗(如账号读取 GET_ACCOUNTS)。你仍需要在宿主应用侧声明权限(以 DevEco / HBuilderX 实际生成结构为准)。
module.json5(参考)
在你的鸿蒙工程 entry/src/main/module.json5(或等价位置)中添加需要的权限声明:
{
"module": {
"requestPermissions": [
{ "name": "ohos.permission.GET_ACCOUNTS" }
]
}
}
如你的支付流程需要网络请求(下单/查询/回调),请在宿主应用按业务补充联网权限(例如 ohos.permission.INTERNET)。
Context 注入(推荐)
部分运行时环境下,UTS 插件内部可能拿不到 Harmony 的 context。推荐你在应用启动时注入:
- 在业务侧把
UIAbility context赋值给globalThis.__uniContext - 或调用
init({ context })显式传入
若未注入,插件会抛出明确错误提示。
说明与限制
- 本插件 不包含任何第三方 SDK(微信/支付宝等),仅调用系统能力。
- 原子支付的 orderInfo 必须由你的业务服务端按平台要求生成;插件只负责拉起支付并返回系统结果。
- 系统分享属于“拉起面板”能力,是否真正分享成功由系统/目标应用决定,插件返回值以 best-effort 为准。
许可证
MIT

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 326
赞赏 5
下载 12615511
赞赏 1949
赞赏
京公网安备:11010802035340号