3***@qq.com
3***@qq.com
  • 发布:2020-12-23 11:35
  • 更新:2021-01-21 16:51
  • 阅读:1048

【报Bug】2.8.13之后的编辑器 使用plus.share.sendWithSystem报错

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.14.6

HBuilderX类型: 正式

HBuilderX版本号: 2.8.13

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: 华为

手机机型: 荣耀 nova等

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
systemShare() {  
                let imgs = [];  
                for(let i = 0; i < this.data.imageList.length; i++) {  
                    uni.downloadFile({  
                        url: this.data.imageList[i],  
                        success: res => {  
                            imgs = imgs.concat(res.tempFilePath);  
                            if(imgs.length == this.data.imageList.length) {  
                                plus.share.sendWithSystem({  
                                    type: 'image',  
                                    pictures: imgs,  
                                    href: ''  
                                }, function() {  
                                    uni.hideToast();  
                                }, function(e) {  
                                    uni.showToast({  
                                        title: '分享失败,请重试',  
                                        icon: 'none'  
                                    })  
                                })  
                            }  
                        }  
                    })  
                }  
            }

操作步骤:
systemShare() {  
                let imgs = [];  
                for(let i = 0; i < this.data.imageList.length; i++) {  
                    uni.downloadFile({  
                        url: this.data.imageList[i],  
                        success: res => {  
                            imgs = imgs.concat(res.tempFilePath);  
                            if(imgs.length == this.data.imageList.length) {  
                                plus.share.sendWithSystem({  
                                    type: 'image',  
                                    pictures: imgs,  
                                    href: ''  
                                }, function() {  
                                    uni.hideToast();  
                                }, function(e) {  
                                    uni.showToast({  
                                        title: '分享失败,请重试',  
                                        icon: 'none'  
                                    })  
                                })  
                            }  
                        }  
                    })  
                }  
            }

预期结果:

分享多图成功

实际结果:

多文件分享仅支持图片 单张图片会成功

bug描述:

2.8.13编辑器是可以分享的。

使用别的版本编辑器分享多图会报:多文件分享仅支持图片,但确定格式是为图片。分享单张可以。

2020-12-23 11:35 负责人:DCloud_Android_ST 分享
已邀请:

最佳回复

DCloud_Android_ST

DCloud_Android_ST

升级到HX3.0.0+版本试下
注意: Android10及以上版本对文件系统访问权限有调整,可能在部分设备上无法分享应用沙盒目录中的图片,建议将图片保存到系统相册后再分享。

  • 3***@qq.com (作者)

    安卓9.0下 hx3.0.0打的包不行 hx2.8.13是好的

    2020-12-24 16:30

  • DCloud_Android_ST

    回复 3***@qq.com: 示例提供下我们尝试是否可以复现问题

    2020-12-24 17:12

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: HX3.0.1正式打包后华为手机可复现 我上传了一个zip有源码 在下方

    2020-12-25 09:26

3***@qq.com

3***@qq.com (作者)

就没人吗?

3***@qq.com

3***@qq.com (作者)

HX3.0.1正式打包后可复现

  • DCloud_Android_ST

    这是系统分享到微信操作。本身微信的限制,解决方案 1、将图片保存到相册 2、使用uni提供的微信分享来实现

    2020-12-25 12:00

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 那为什么 HX2.8.13打出来的包 是可以的?

    2020-12-25 14:11

  • DCloud_Android_ST

    回复 3***@qq.com: 之前是自动向相册插入图片,不过在android10+版本玩不通了,只有向相册保存你的图片再分享。 这种方式对手机用户不友好所以需要开发者自己决定是否需要保存到相册。更高版本的手机系统也会出现安全提示,所以建议使用微信分享模块来处理

    2020-12-25 15:05

  • DCloud_Android_ST

    回复 DCloud_Android_ST: 最好的适配就是使用uni微信模块去分享节省适配问题

    2020-12-25 15:06

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST:不是安卓10+ 都是安卓9 一个是hx2.8.13打的包可以分享 一个是hx3.0.1打的包不可以分享。uni.share 只能分享单图啊!!

    2020-12-26 10:44

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: uni分享能分享多图给微信好友吗 不是朋友圈

    2020-12-28 09:01

  • DCloud_Android_ST

    回复 3***@qq.com: 嗯 android9 也有多图分享的问题 文档会跟随更新

    2020-12-28 10:37

  • DCloud_Android_ST

    也没必要就纠结android9是否可以行。因为android10+明确是不可以的,用uniapp分享到微信才是正确适配方案

    2020-12-28 10:40

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 你还是没理解问题。。安卓10+ 我用hx2.8.13打的包也是可以分享的,但是用hx3.0.0以上打的包是分享失败的。

    2020-12-29 10:21

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 我说的是编辑器的问题 不是安卓的问题

    2020-12-29 10:22

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 无论是安卓9 还是安卓10+。用hx2.8.13打的包都是可以分享的,用hx3.0.0+都会失败!

    2020-12-29 11:33

  • DCloud_Android_ST

    部分市场已经要求targetSdkVersion大于29了,android10+就会无法分享了必须将图片保存到相册才可以。不知道你为什么那么执着与系统分享。我们是推荐您使用uniapp封装的微信分享模块来分享。如果targetSdkVersion对你们的应用没有影响的话那可以暂时先使用2.8.13版本来打包使用

    2020-12-29 11:53

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: uniapp封装的分享它不能分享多图给好友啊!

    2020-12-29 17:44

  • DCloud_Android_ST

    回复 3***@qq.com: 尴尬了 我这边推动一下看看怎么处理这个问题

    2020-12-29 18:06

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 真不是我执着系统分享,是需求要分享多图,uni封装的只能分享单图。

    2020-12-30 09:18

  • DCloud_Android_ST

    回复 3***@qq.com: 老版本2.8.13会主动将图片插入到相册数据库中。不过这种玩法在高版本系统会被误报对相册污染操作。所以已经去掉了。 交由开发者自己主动调用保存到相册。所以新版本会无法分享。你只需要将图片保存到相册再分享即可。微信SDK目前也仅支持一张图片分享模式。猜测之后的多图可能也会慢慢被移除。

    2020-12-30 11:01

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 那是不是我用hx3.0.0+以上的 先把图片存到相册还是能分享的?

    2020-12-30 11:10

  • DCloud_Android_ST

    回复 3***@qq.com: 是的

    2020-12-30 11:57

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 分享相册图片 相册图片的路径怎么获得 uni.saveImageToPhotosAlbum后也没返回路径!

    2020-12-30 13:30

  • DCloud_Android_ST

    回复 3***@qq.com: 先用plus.gallery.save 会返回file字段 https://www.html5plus.org/doc/zh_cn/gallery.html#plus.gallery.save

    2020-12-30 14:54

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 感谢 问题已解决

    2020-12-30 17:06

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 这个问题又出现了。。。用plus.gallery.save返回的路径 又报错说分享多文件只能多图。。

    2021-01-07 16:25

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 这个问题 我看很多人都遇到了 https://ask.dcloud.net.cn/question/112246 https://ask.dcloud.net.cn/question/113412 能看看吗 或者怎么操作出个方案

    2021-01-07 16:28

  • DCloud_Android_ST

    回复 3***@qq.com: 这个是微信限制的 我们也没办法

    2021-01-07 16:31

  • DCloud_Android_ST

    回复 3***@qq.com: 目前测试相册路径的图片是可以的 你遇到问题时可打印一下路径看下路径是否都是相册路径

    2021-01-07 16:32

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: {"file":"file:///storage/emulated/0/DCIM/Camera/499446009416519680.jpg"} 这种路径 是属于相册路径吗

    2021-01-07 16:34

  • DCloud_Android_ST

    回复 3***@qq.com: 0/DCIM/Camera属于相册路径

    2021-01-07 16:35

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: file:///storage/emulated/0/DCIM/Camera/499446009416519680.jpg这个是plus.gallery.save返回的 那我分享的时候 需要切掉前面的吗

    2021-01-07 16:38

  • DCloud_Android_ST

    回复 3***@qq.com: 不用 就这样传递地址就行

    2021-01-07 17:22

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 安卓10.1.0的华为mate30 它们自己相册里的图片都分享不出去 另人头大

    2021-01-08 09:33

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 别的安卓10+的手机保存到相册 是可以分享

    2021-01-08 09:34

  • DCloud_Android_ST

    回复 3***@qq.com: 收到你反馈的问题 我们也会找找看有没有好的解决方案,目前看是微信限制问题

    2021-01-08 12:56

  • 3***@qq.com (作者)

    回复 DCloud_Android_ST: 现在用2.8.13打包 会报打包基座和手机基座不一样的提示…分享也挂了…

    2021-01-28 14:18

  • 7***@qq.com

    回复 DCloud_Android_ST: 有好的解决方案了吗

    2021-04-22 12:56

p***@163.com

p***@163.com - 90后IT

问题解决了吗

该问题目前已经被锁定, 无法添加新回复