当前位置: 首页 > news >正文

uniapp npm安装形式 全局分享和按钮分享设置

全局分享方法

新建一个shareUtil.ts方法

import { storageConfig } from '@/config/storageConfig';
export default {data() {return {miniShareOptions: {title: '标题',path: '/pages/tabbar/index?inviteCode=',summary: '描述',imageUrl: '/userPages/static/img/invitation_h_bg.png',},shareCover: '/userPages/static/img/invitation_h_bg.png',};},// 发送给朋友onShareAppMessage() {const userInfoStr = uni.getStorageSync(storageConfig.userStoreKey);const userInfo = JSON.parse(userInfoStr);console.log(userInfo, 'userInfo');const inviteCode = userInfo?.userInfo?.inviteCode || '';console.log(inviteCode, 'inviteCode');return {...this.miniShareOptions,path: `/pages/tabbar/index?inviteCode=${inviteCode}`,query: `inviteCodeQQ=${inviteCode}`,imageUrl: this.shareCover,};},onShareTimeline() {const userInfoStr = uni.getStorageSync(storageConfig.userStoreKey);const userInfo = JSON.parse(userInfoStr);console.log(userInfo, 'userInfo');const inviteCode = userInfo?.userInfo?.inviteCode || '';console.log(inviteCode, 'inviteCode');return {title: '标题',path: `/pages/tabbar/index?inviteCode=${inviteCode}`,query: `inviteCodeQQ=${inviteCode}`,imageUrl: '/userPages/static/img/invitation_h_bg.png',};},
};

全局配置

import { createSSRApp } from 'vue';
import App from './App.vue';
import './style/pulic.css';
import pinia from './store';
import uviewPlus from 'uview-plus';
import { initRequest } from '@/utlis/http';
import { logEnvInfo } from '@/utlis/envUtils';
import shareUtil from '@/utlis/shareUtil';
export function createApp() {const app = createSSRApp(App);// 打印环境信息(仅在开发环境)logEnvInfo();app.use(pinia);app.use(uviewPlus);initRequest();app.mixin(shareUtil);return {app,};
}

页面按钮分享配置

在onLoad中设置onShareAppMessage,不然无法覆盖全局分享设置

import { onLoad, onShareAppMessage } from '@dcloudio/uni-app';
onLoad((options) => {console.log('页面加载参数:', options);if (options.taskId) {getFaceSwappingDetail(options.taskId);}onShareAppMessage((e) => {const imageUrl = templateInfo.value.imageWorks[0].fileUrl;const title = templateInfo.value.template.name;const shareobj = {title: title, //分享的标题path: `/pages/tabbar/index?inviteCode=${userStore.userInfo.inviteCode}`,imageUrl: imageUrl,};console.log(shareobj, '分享shareobj');return shareobj;});
});

获取分享参数

如果需要获取参数在app.vue中 onShow中获取options

如下

onShow((options) => {console.log(options, 'app   onShow');if (options?.query?.inviteCode) {userStore.setReInviteCode(options.query.inviteCode);}
});

http://www.dtcms.com/a/352678.html

相关文章:

  • Spring Boot:统一返回格式,这样搞就对了。
  • HMM简单拓展-HSMM与高阶HMM
  • 视频号存在争议了...
  • 软件开发技术栈
  • JVM之【运行时数据区】
  • 深度学习-----ptorch框架认识-手写数字识别.py项目解读
  • 2025年渗透测试面试题总结-34(题目+回答)
  • three.js+WebGL踩坑经验合集(9.2):polygonOffsetFactor工作原理大揭秘
  • Langchian-chatchat私有化部署和踩坑问题以及解决方案[v0.3.1]
  • More Effective C++ 条款10:在构造函数中防止资源泄漏
  • 二维费用背包 分组背包
  • 小范围疫情防控元胞自动机模拟matlab
  • 深入剖析容器文件系统:原理、实现与资源占用分析
  • 游戏空间划分技术
  • 家庭财务规划与投资系统的设计与实现(代码+数据库+LW)
  • 声网RTC稳定连麦、超分清晰,出海直播技术不再难选
  • AT_abc403_f [ABC403F] Shortest One Formula
  • 【44页PPT】极简架构MES系统解决方案介绍(附下载方式)
  • 【Python】雷达簇类ply点云仿真生成,以及聚类算法的簇类目标检测
  • flutter专栏--dart基础知识
  • WebGIS开发智慧校园(6)JavaScript
  • 破解VMware迁移难题的技术
  • SSH密钥登录全流程详解
  • LeetCode-221. 最大正方形
  • 多模块 Starter 最佳实践(强烈推荐!!!)
  • Quarkus OIDC 安全链路时序图
  • git换行行为差异简述;.editorconfig换行行为简述
  • 打工人日报#20250826
  • 【PS实战】制作hello标志设计:从选区到色彩填充的流程(大学作业)
  • springboot启动的时候,只打印logo,不打印其他的任何日志的原因