微博官方js sdk(wbml、wb2.0等)已全面停用,现唯一稳定方式是构造标准分享url:https://service.weibo.com/share/share.php,通过url编码参数(url、title、pic)生成超链接,兼容各端且不依赖js。

微博分享按钮的官方 JS SDK 已停用,别再找 WBML 或 WB2.0
现在(2024 年起)微博官方已下线所有基于 JS SDK 的分享组件,WBML、WB2.0、WB.share 等接口全部不可用,调用会返回 404 或直接白屏。强行引入旧 SDK 会导致页面报错 Uncaught ReferenceError: WB is not defined,且无法触发分享。
目前唯一稳定可用的方式是构造微博开放平台提供的标准分享 URL,通过超链接跳转唤起微博客户端或网页分享页。
用 https://service.weibo.com/share/share.php 构造分享链接
这是微博官方文档仍明确支持的分享方式,兼容 PC 网页、手机浏览器、微博 App 内嵌 WebView。核心是拼接 query 参数,不依赖任何 JS。
-
url:当前页面完整 URL(必须 URL 编码,否则中文乱码或截断) -
title:分享标题(建议也编码,尤其含空格、中文、符号时) -
pic:图片 URL(单张,HTTPS 协议优先;多个图片需用第三方服务中转或放弃) -
searchPic:设为1可启用微博自动抓图(但不稳定,不推荐依赖)
示例(HTML 中直接写):
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
<a href="https://service.weibo.com/share/share.php?url=https%3A%2F%2Fexample.com%2Fpost%2F123&title=%E6%88%91%E7%9A%84%E6%96%87%E7%AB%A0&pic=https%3A%2F%2Fexample.com%2Fimg.jpg" target="_blank">分享到微博</a>
注意:target="_blank" 是必要的,否则在某些安卓微信内置浏览器中会直接跳转失败。
避免踩坑的四个关键点
实际部署时,以下问题最常导致分享失败或内容异常:
- 未对
url和title做encodeURIComponent—— 导致链接 400 错误或标题显示为%E4%BD%A0%E5%A5%BD - 用了 HTTP 图片链接 —— 微博新版会拒绝加载,必须 HTTPS
- 在 Vue/React 等框架里用
v-bind:href或href={...}时,忘记手动编码,直接拼字符串 - 期望分享多图或带视频 —— 当前 URL 分享不支持,只能退化为单图 + 文字,或引导用户手动复制链接发博
移动端适配和 fallback 要做两件事
纯 URL 分享在 iOS 微博 App 内点击可直接唤起分享面板;但在安卓部分浏览器(如 QQ 浏览器)可能跳转到微博网页版分享页,体验略降。
- 检测是否在微博客户端内:可通过
navigator.userAgent判断是否含Weibo,但不绝对可靠;更稳妥的是不做 UA 判断,统一走标准链接 - 务必加
rel="noopener noreferrer"防止 opener 泄漏(安全要求) - 如果项目有 SSR,确保服务端也做 URL 编码,避免前后端不一致导致链接损坏
复杂点在于:你没法控制用户是否安装微博 App,也没法预知他用什么浏览器打开。能做的只有把链接拼对、编码严、协议稳——剩下的交给微博自己的路由逻辑。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










