更新记录

1.0.0(2026-08-29)

  • 首个版本:初始化、安装检测、打开小红书活动页、图文与视频笔记分享。

平台兼容性

uni-app(5.24)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(5.24)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - -

hans-xhs-share 小红书分享

封装小红书官方分享 SDK 的 uni-app x UTS 插件:初始化、安装检测、打开小红书活动页、图文(1~18 张)与视频笔记分享。

使用前提:在小红书开放平台申请 AppKey,并完成应用包名 / BundleID 备案。

平台兼容性

支持情况
uni-app x · Android ✔ 5.0+(minSdkVersion 21)
uni-app x · iOS ✔ 12.0+
uni-app(Vue3)· Android / iOS ✔(与 uni-app x 同等能力,已实测)
Harmony ✘(调用返回失败)

安装与配置

Android:无需手动配置,AAR 与 FileProvider 均已内置,直接打自定义基座即可。如需更换 SDK,请替换 utssdk/app-android/libs/xhssharesdk.aar,并使用不低于 1.1.4 的版本。

iOS

  1. 编辑 utssdk/app-ios/Info.plist,把 xhs填写你的AppKey 改为 xhs + 你的AppKey
  2. 应用工程配置 Universal Link(HTTPS 域名,以 / 结尾填到开放平台备案),HBuilderX manifest 打开 Associated Domains。

快速上手

UTS 支持类型检查,建议为会保存、复用或动态拼装的参数对象显式声明插件导出的类型。特别是 XhsShareOptionstype 字段声明为 'image' | 'video',可避免先赋值给变量后被推断为普通 string

import {
    initXhsShare,
    isXhsInstalled,
    openXhsUrl,
    shareToXhs,
    XhsShareSimpleResult,
    XhsShareFail,
    XhsShareInitOptions,
    XhsShareOptions,
    XhsOpenUrlOptions
} from '@/uni_modules/hans-xhs-share'

// 初始化(iOS 必须传 universalLink,以 "/" 结尾)
const initOptions : XhsShareInitOptions = {
    appKey: '你的AppKey',
    universalLink: 'https://your-domain.com/app/xhs/',
    enableLog: false,
    success: (res : XhsShareSimpleResult) => {},
    fail: (err : XhsShareFail) => {}
}
initXhsShare(initOptions)

// 安装检测(同步)
if (!isXhsInstalled()) {
    uni.showToast({ title: '请先安装小红书', icon: 'none' })
}

// 图文分享:最多 18 张,网络 URL 或本地路径均可
const imageOptions : XhsShareOptions = {
    type: 'image',
    imageUrls: ['/static/demo/a.jpg', '/static/demo/b.jpg'],
    title: '标题',
    summary: '正文'
}
shareToXhs(imageOptions)

// 单张便捷写法
const singleImageOptions : XhsShareOptions = {
    type: 'image',
    imageUrl: '/static/demo/a.jpg'
}
shareToXhs(singleImageOptions)

// 视频分享(封面可选)
const videoOptions : XhsShareOptions = {
    type: 'video',
    videoUrl: '/static/demo/v.mp4',
    coverUrl: '/static/demo/cover.jpg',
    title: '标题',
    summary: '正文'
}
shareToXhs(videoOptions)

// 在小红书内打开活动页
const openUrlOptions : XhsOpenUrlOptions = {
    url: 'https://www.xiaohongshu.com/explore'
}
openXhsUrl(openUrlOptions)

API

initXhsShare(options)

初始化,启动后调用一次即可;重复调用会覆盖配置。

参数 类型 必填 说明
appKey string 开放平台申请的 AppKey
universalLink string iOS 是 / 结尾,需在开放平台备案
enableLog boolean 日志开关,默认 false

shareToXhs(options)

参数 类型 必填 说明
type 'image' \| 'video' 分享类型
imageUrls string[] image 时必填 1~18 张,网络 URL 或本地路径
imageUrl string - 单张便捷写法,与 imageUrls 合并去重
videoUrl string video 时必填 网络 URL 或本地路径
coverUrl string 视频封面
title / summary string 笔记标题 / 正文

openXhsUrl(options)

在小红书内打开活动页,url 仅支持 http/https。

其它

  • isXhsInstalled(): boolean —— 同步检测是否安装小红书
  • setXhsLogEnabled(enabled) / isXhsLogEnabled() —— 日志开关

所有接口均支持回调(类型已随插件导出): success(res : XhsShareSimpleResult) —— 用户在小红书完成发布后触发; fail(err : XhsShareFail) —— 取消等失败场景触发; complete(res) —— 无论成败均触发。 err 为标准 UniError(errSubject: 'hans-xhs-share'),err.data 携带官方原始信息 { nativeCode, nativeMsg, platform }

错误码

errCode 含义
9010001 小红书未安装
9010002 小红书版本过低
9010003 分享参数有误
9010004 媒体文件不存在或不可读
9010005 媒体处理失败(格式/大小/时长超限等)
9010006 鉴权失败(AppKey / Universal Link 配置或权限问题)
9010007 唤起小红书失败
9010008 用户取消发布
9010009 未初始化
9010010 上一次分享尚未结束
9010011 其它/内部错误(查看 err.data 定位)

注意事项

  • 本地路径支持 /static/... 自动转换;沙盒内文件请传绝对路径。
  • iOS 经系统相册跨进程共享媒体,首次使用会弹相册权限,拒绝后返回 9010006。
  • 工程 URL Scheme 超过 50 个时,xhs<AppKey> 必须排进前 50 位,否则无法回跳。
  • 排障时先开日志(setXhsLogEnabled(true) 或 init 传 enableLog: true),控制台过滤 hans-xhs-share

更新日志

changelog.md

隐私、权限声明

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

iOS 需相册访问权限(NSPhotoLibraryUsageDescription)用于跨进程分享;Android 无需额外权限

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

无数据采集;媒体资源经系统相册/FileProvider 跨进程传给小红书客户端完成发布

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

暂无用户评论。