更新记录

1.0.3(2026-09-15) 下载此版本

  1. 【重要修复】解决插件引入即白屏问题:
    • 将所有 HarmonyOS 模块改为懒加载模式,避免在插件引入时执行可能失败的 require()
    • 增加 try-catch 包裹所有可能抛出异常的操作
    • 所有方法改为返回友好错误对象,不再抛出未捕获的异常(避免白屏)
    • 添加模块缓存机制,避免重复加载
    • init() 即使获取 Context 失败也标记为已初始化,让后续调用更友好地处理
  2. 【重要修复】Context 获取逻辑优化:
    • 新增 _tryGetContextSafe() 方法,尝试多种方式获取 Context
    • 支付/分享/登录方法中使用最新的 Context,而非缓存的 Context
    • 当 Context 为 null 时返回友好错误提示,而非崩溃
  3. 【重要修复】API 契约优化:
    • pay() 未初始化或失败时返回 ZyPayResult 对象(code: 'fail')
    • share() 未初始化或失败时返回 ZyShareResult 对象(success: false)
    • login() 未初始化或失败时返回 ZyLoginResult 对象(userId: ''),包含错误信息
    • 所有方法不再抛出异常,保证应用不会因此崩溃

1.0.2(2026-09-14) 下载此版本

  1. 完善 displayName/description/keywords(新增 harmony/uni-app-x/PaymentKit/ShareKit/AccountKit 等关键词)
  2. init 增加支付/分享/账号三大系统模块的存在性探活(debug 模式打印),便于早期发现 SDK/版本不匹配
  3. init/pay/share/login 增加 isInited 守卫;未 init 时 pay/share 不抛错而是返回标准失败结果(与现有契约兼容)
  4. pay 增加 options 空值校验与 orderInfo 空字符串校验,错误信息统一前缀
  5. share 增加“title/text/url/imagePath/filePaths 至少给一项”的入参校验,避免空分享拉起
  6. safeParseJson 兼容非字符串入参;engine.getContextSafe 增加 globalThis.getContext?.() 兜底
  7. 对外 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

隐私、权限声明

1. 本插件需要申请的系统权限列表:

可能需要:联网权限(支付下单/回调由业务服务器决定)、账号/分享相关权限(按 README 配置)。插件仅调用系统原生 API,并在必要时触发系统授权弹窗。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

不采集任何用户数据;支付/分享/账号能力均由系统提供;不接入任何第三方 SDK。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT License

Copyright (c) 2026

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

暂无用户评论。