uni-app 中全局实现微信小程序的分享功能_uni.showsharemenu
一、分享按钮为何\"面如死灰\"?
当你满心欢喜地开发完小程序,准备分享给好友炫耀时,却发现分享按钮灰蒙蒙一片,点击毫无反应?这不是你的代码有问题,而是微信小程序的分享功能需要主动调用API开启!
二、传统实现方式的痛点
在常规开发中,通常会在每个页面中这样写:
uni.showShareMenu({ withShareTicket: true, menus: [\'shareAppMessage\', \'shareTimeline\'],})
这种方式存在三大痛点:
-
代码重复 - 每个页面都需要写相同的配置
-
维护困难 - 修改分享策略需要逐个页面调整
-
容易遗漏 - 新页面可能会忘记添加分享配置
三、终极解决方案:全局\"共享单车\"式分享
既然每个页面都要配置太麻烦,不如搞个\"共享单车\"式的解决方案。一次配置,全项目通用!
核心代码实现:
-
创建分享插件 (
plugins/sharePlugin.js
)
export default { install(app) { app.mixin({ onLoad() { const page = getCurrentPages().pop() if (page) { uni.showShareMenu({ withShareTicket: true, menus: [\'shareAppMessage\', \'shareTimeline\'], }) } }, }) },}
-
在main.js中注册插件
import { createSSRApp } from \'vue\'import App from \'./App.vue\'import sharePlugin from \'./plugins/sharePlugin\'export function createApp() { const app = createSSRApp(App) app.use(sharePlugin) return { app, }}
-
效果展示