Jsweixin 微信分享工具
jsweixin.js 对微信 JS-SDK 的分享配置进行链式封装,对外入口为 GB.Wxshare()。它负责组织签名参数、分享接口和分享内容,并在微信 SDK 就绪后注册分享能力。
安装与依赖
浏览器直接引入
必须先引入微信官方 JS-SDK,再引入 Gentbo 扩展。
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script src="https://cloud.m775.net/js/jsweixin.js"></script>
npm 项目
npm i @gentbo/jsweixin
import '@gentbo/jsweixin';
页面还需要从自己的服务端获取当前 URL 对应的微信签名参数。AppSecret 不应写入浏览器代码。
快速开始
将服务端返回的 appId、timestamp、nonceStr 和 signature 写入配置,设置分享内容后调用 run()。
GB.Wxshare()
.appid(signConfig.appId)
.timestamp(signConfig.timestamp)
.nonce(signConfig.nonceStr)
.sign(signConfig.signature)
.title('页面标题')
.desc('页面内容简介')
.link(location.href)
.image('https://example.com/share-cover.jpg')
.success(() => console.log('分享设置成功'))
.error(error => console.error('微信配置失败:', error))
.run();
微信签名配置
.debug(enabled = true)启用或关闭微信 JS-SDK 调试模式;只有严格的 true 会启用。.appid(appId)设置微信公众号或开放平台应用的 appId。.timestamp(value)设置生成签名时使用的时间戳。.nonce(value)设置生成签名时使用的随机字符串,对应 nonceStr。.sign(signature)设置服务端生成的签名。签名必须与用户当前访问的页面 URL 匹配。单页应用修改路由或 URL 后,通常需要重新获取签名并再次配置。
管理 JS-SDK 接口
Wxshare 默认包含现代与旧版的好友和朋友圈分享接口:updateAppMessageShareData、updateTimelineShareData、onMenuShareAppMessage 和 onMenuShareTimeline。
.api(string)按空格、逗号或分号拆分字符串,并替换当前接口列表。.api(array)将数组中的接口去重后追加到当前列表。.addApi(name)追加一个尚未存在的接口。.removeApi(name)移除指定接口。.clearApi()清空全部接口。GB.Wxshare()
.clearApi()
.api([
'updateAppMessageShareData',
'updateTimelineShareData'
])
.appid(signConfig.appId)
.timestamp(signConfig.timestamp)
.nonce(signConfig.nonceStr)
.sign(signConfig.signature)
.title('分享标题')
.link(location.href)
.image('https://example.com/share.jpg')
.run();
分享内容与回调
.title(value)设置分享标题。.desc(value)设置分享描述。.link(url)设置用户点击分享卡片后打开的地址。.image(url)设置分享图标的完整网络地址,对应 imgUrl。.success(callback)设置微信接口的成功回调。.cancel(callback)设置取消回调;是否触发取决于具体 SDK 接口。.complete(callback)设置接口完成回调;是否支持取决于具体 SDK 接口。.error(callback)通过 wx.error() 监听 JS-SDK 配置验证失败,回调参数为微信返回的错误信息。启动分享配置
.run()调用 wx.config(),并在 wx.ready() 后逐一执行已配置的分享接口。.start()run() 的兼容入口。如果微信 JS-SDK 未加载,执行时会立即抛出“微信JS-SDK未加载”错误。当前 SDK 不支持的分享接口会自动跳过,其他可用接口仍会继续注册。签名或权限配置验证失败时,由 error() 注册的回调接收 wx.error() 信息。
使用边界
运行环境仅适用于加载了微信 JS-SDK 的浏览器页面,实际能力还受微信客户端和公众号权限影响。签名安全签名应由服务端生成;不要在前端保存 AppSecret。错误监听通过链式 error(callback) 监听 wx.error();建议在生产环境记录 errMsg 和当前签名 URL。返回值run() 和 start() 用于提交配置,不返回 Promise 或当前实例。