【uniapp】uniapp+vue2微信小程序实现分享功能

uniapp+vue2做的微信小程序实现分享功能

问题描述

uniapp+vue2做的微信小程序,发布以后点击右上角三个点,分享小程序的时候,转发和分享按钮都是灰色

解决方案

转发、分享、复制链接这几个功能需要自己来手动写方法,考虑到每个页面都需要能够实现分享功能,以下我会使用 Vue.js 的全局混入【mixin】的方法来实现

onShareAppMessage() 发送给朋友

onShareTimeline() 分享到朋友圈

api参数配置可以参考:uniapp-onShareAppMessage(OBJECT)

【复制链接】功能不需要单独写方法,【发送给朋友】功能实现了,复制功能自然也能使用

1. 创建一个全局分享的js文件【minix】

文件中定义全局转发、分享的内容

结构

在pages目录下创建一个minix目录

代码
javascript 复制代码
let mixin = {
	data() {
    return {
      title: '分享Title',
			imgUrl: 'https://xxxx.com/a8962f26b07e7605c6.png'
    }
  },
  created() {
    //#ifdef MP-WEIXIN
		wx.showShareMenu({
			withShareTicket: true,
			menus: ['shareAppMessage', 'shareTimeline']
		});
		//#endif
  },
	onShareAppMessage(res) {
		return {
			title: this.title,
			imageUrl: this.imgUrl
		}
	},
	onShareTimeline(res) {
		return {
			title: this.title,
			imageUrl: this.imgUrl
		}
	},
  methods: {
  }
}

export default mixin;

2. 在main.js中全局引入,并使用mixin()方法全局混入

javascript 复制代码
import App from './App'
import myMixin from 'pages/minix/index.js';

Vue.mixin(myMixin)

实现效果

完成以上两步操作再点击右上方三个点,会看到转发和分享功能均可以使用

如果不想全局调用,单个页面也可以实现,利用单个页面单独使用方法,或者单个页面单独使用mixin()混入方法均可

vue3的全局使用方法可以参考以下文章(主要main.js中全局引入和挂载不同):
【uniapp】uniapp+vue3微信小程序实现分享功能

相关推荐
何何____几秒前
Vue 全局事件总线详解
前端·javascript·vue.js
涉密IT资质笔记42 分钟前
涉密人员脱密期管理规范:期限分级模型、就业限制边界与违规认定标准
java·服务器·前端·网络·数据库
u0111026751 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画
事圆则缓1 小时前
Flutter 状态管理框架对比(五):GetX 的响应式、依赖注册与生命周期
前端·javascript·flutter
FX1317887KP_1 小时前
PET口语备考攻略:发音、语法、表达,三个问题怎么同时解决
小程序·ket口语·pet口语·fce备考·剑桥英语
地球@+jdhb441 小时前
企业私域运营新趋势:快手短视频平台跳转小程序企微卡片链路搭建成为商家运营重点
小程序·企业微信
广州智造2 小时前
Radioss复合材料使用的单元属性
前端·设计·cad·建模·cae·radioss
程序鉴定师2 小时前
2026年深圳小程序/App开发公司技术选型指南:从架构设计到交付标准全维度评估
java·小程序·uni-app·php·objective-c
张宏宇2 小时前
我把微软开源的 tgrep 做成了本地版 GitHub Code Search:45,629 个文件里搜一次 10ms
前端·后端
huakoh2 小时前
MCP 调用超时后别急着重试:三步读回分清执行状态
前端