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

UniApp 实现分享功能

文章目录

  • 一、环境准备
  • 二、代码实现
  • 三、常见问题解决

一、环境准备

1. 必要的权限配置
manifest 中添加以下权限:

{"app-plus": {"distribute": {"android": {"permissions": ["<uses-permission android:name=\"android.permission.INTERNET\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"]}}}
}

2.各平台配置
微信配置

  • 前往微信开放平台注册应用
  • manifest.json 中添加:
"app-plus": {"distribute": {"sdkConfigs": {"share": {"weixin": {"appid": "你的微信APPID","UniversalLinks": "https://你的域名/app/"}}}}
}

QQ配置

  • 前往QQ互联平台注册应用
  • manifest.json 中添加:
"qq": {"appid": "你的QQ APPID"
}

二、代码实现

<template><view><button @click="share('weixin','WXSceneSession)">微信好友</button><button @click="share('qq','')">QQ好友</button><button @click="share('weixin','WXSceneTimeline')">朋友圈</button></view>
</template><script>
export default {methods: {async share(provider, scene) {if (!await this.checkInstall(provider)) return;try {await uni.share({provider,type: 0, // 0-图文,1-纯文字,2-图片,5-小程序title: "优质内容分享",summary: "点击查看详情内容",href: "https://example.com",imageUrl: "/static/share.jpg",scene,});} catch (e) {this.handleError(e);}},async checkInstall(provider) {const installed = await checkAppInstalled(provider);if (!installed) {uni.showModal({title: '提示',content: `请先安装${provider === 'weixin' ? '微信' : 'QQ'}`,showCancel: false});return false;}return true;},checkAppInstalled(provider) {return new Promise((resolve) => {uni.getProvider({service: 'share',success: (res) => {resolve(res.provider.includes(provider));}});});},handleError(error) {console.error('分享失败:', error);const msg = {'-1': '分享已取消','2': '未安装应用','3': '参数错误'}[error.errCode] || '分享失败';uni.showToast({title: msg,icon: 'none'});}}
}
</script>

三、常见问题解决

1.iOS 分享图片不显示

  • 确保图片小于32KB
  • 使用网络图片地址(本地路径需转base64)

2. Android 签名不一致

  • 检查开放平台配置的签名与打包签名是否一致
  • 使用官方提供签名校验工具
http://www.xdnf.cn/news/2773.html

相关文章:

  • 深入探究C++ 中的stack、queue和deque
  • 图论---拓扑排序(DFS)
  • delphi使用sqlite3
  • 《AI大模型应知应会100篇》第39篇:多模态大模型应用:文本、图像和音频的协同处理
  • 基于 Python 的实现:居民用电量数据分析与可视化
  • C++入门(namespace/输入输出)
  • 2025A卷-正整数到Excel编号之间的转换
  • 对Electron打包的exe文件进行反解析
  • 在idea开发中遇到的20个bug
  • 晶振PCB设计核心要点与规范
  • 设备指纹护航电商和金融反欺诈体系建设
  • 飞凌嵌入式T527核心板获得【OpenHarmony生态产品兼容性证书】
  • STL标准模板库
  • 杰理-ios获取不了时间问题
  • 爬虫过程中如何确保数据准确性
  • Qt/C++面试【速通笔记四】—Qt中的MVC模式
  • VLM-E2E:通过多模态驾驶员注意融合增强端到端自动驾驶——论文阅读
  • RecoNIC 入门:SmartNIC 上支持 RDMA 的计算卸载-FPGA-智能网卡-AMD-Xilinx
  • 【Vue.js】组件数据通信——基于Props 实现父组件--> 子组件传递数据(最基础案例)
  • uniapp自定义头部(兼容微信小程序(胶囊和状态栏),兼容h5)
  • 数据展示功能界面设计与实现及终端控制界面思路(17)
  • 使用OpenCV和dlib库进行人脸关键点定位
  • 2025系统架构师---管道/过滤器架构风格
  • 待验证---Oracle 19c 在 CentOS 7 上的快速安装部署指南
  • Java生成微信小程序码及小程序短链接
  • TensorFlow深度学习框架:从入门到精通的完整指南
  • 基于Java,SSH,Vue电子商品交易二手平台仿闲鱼转转验机系统设计
  • Eureka 深度解析:从原理到部署的全场景实践
  • 喷泉码技术在现代物联网中的应用 设计
  • 组装 (DIY) 一台显示器 (4K 屏支持 4 画面分屏 PBP 1080p x4)