uni-app uni.share分享为小程序时提示"由于不支持的分享类型,无法分享到微信"
uni-app uni.share分享为小程序时提示"由于不支持的分享类型,无法分享到微信"
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC系统版本 | windows 10 20H2 |
HBuilderX | 正式 |
HBuilderX版本 | 3.4.7 |
手机系统 | Android |
手机系统版本 | Android 9.0 |
手机厂商 | 华为 |
手机机型 | MRD-AL00 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
uni.share({
provider: 'weixin',
scene: "WXSceneSession",
type: 5,
imageUrl: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/962fc340-4f2c-11eb-bdc1-8bd33eb6adaa.png',
title: '欢迎体验uniapp',
miniProgram: {
id: 'wx903a4d62079c098e',
path: 'pages/index/index',
type: 0,
webUrl: 'http://uniapp.dcloud.io'
},
success: ret => {
console.log(JSON.stringify(ret));
}
});
操作步骤:
- 发起uni.share
预期结果:
- 分享成功
实际结果:
- 提示"由于不支持的分享类型,无法分享到微信"
bug描述:
uni.share分享为小程序,提示"由于不支持的分享类型,无法分享到微信" 已获得微信权限,如附件所示。
3 回复
从相关问题解决了,分享的id应该填微信开放平台小程序的原始id,我写成appid了,改完就OK
请问楼主有遇到,分享后一闪而过不跳转的问题吗
在 uni-app 中使用 uni.share
进行分享时,如果遇到提示“由于不支持的分享类型,无法分享到微信”,通常是因为分享的内容类型不符合微信小程序的要求。以下是一些可能的原因和解决方法:
1. 检查分享类型
- 微信小程序支持的分享类型有限,通常只支持分享小程序页面路径,不支持直接分享图片、视频等多媒体内容。
- 确保你使用的是
type: 'miniProgram'
,并且提供了正确的小程序页面路径。
uni.share({
provider: 'weixin',
scene: 'WXSceneSession', // 分享到聊天
type: 'miniProgram',
miniProgram: {
id: '小程序原始ID', // 可选,默认使用当前小程序
path: '/pages/index/index', // 小程序页面路径
webUrl: 'https://www.example.com', // 兼容低版本的网页链接
title: '分享标题',
imageUrl: 'https://www.example.com/logo.png' // 小程序封面图
},
success: function (res) {
console.log('分享成功');
},
fail: function (err) {
console.log('分享失败', err);
}
});
2. 检查小程序页面路径
- 确保
path
参数是有效的小程序页面路径,且路径必须以/
开头。 - 如果路径不正确,微信会提示不支持该分享类型。
3. 检查小程序是否支持分享
- 确保你的小程序已经配置了分享功能,并且在
onShareAppMessage
中定义了分享内容。 - 如果小程序没有配置分享功能,可能会导致分享失败。
4. 检查网络图片
- 如果
imageUrl
使用的是网络图片,确保图片地址是有效的,并且图片大小符合微信的要求(建议使用小于 200KB 的图片)。 - 如果图片地址无效或图片过大,可能会导致分享失败。
5. 检查微信版本
- 某些分享功能可能只在较新的微信版本中支持。确保用户的微信版本是最新的。
6. 调试与日志
- 使用
uni.getSystemInfo
获取当前环境信息,确保运行环境是微信小程序。 - 在
fail
回调中打印错误信息,查看具体的错误原因。
uni.getSystemInfo({
success: function (res) {
console.log('当前环境信息:', res);
}
});
7. 兼容性处理
- 如果需要在不同平台(如H5、App)上兼容分享功能,可以使用条件编译来处理不同平台的分享逻辑。
// #ifdef MP-WEIXIN
uni.share({
provider: 'weixin',
type: 'miniProgram',
miniProgram: {
path: '/pages/index/index',
title: '分享标题',
imageUrl: 'https://www.example.com/logo.png'
},
success: function (res) {
console.log('分享成功');
},
fail: function (err) {
console.log('分享失败', err);
}
});
// #endif