欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > UniApp 实现分享功能

UniApp 实现分享功能

2025/5/2 20:07:45 来源:https://blog.csdn.net/weixin_44732078/article/details/147585087  浏览:    关键词: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 签名不一致

  • 检查开放平台配置的签名与打包签名是否一致
  • 使用官方提供签名校验工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词