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'  
                                    })  
                                })  
                            }  
                        }  
                    })  
                }  
            } 
                                        
                                    
                                    - 发布:2020-12-23 11:35
- 更新:2021-01-21 16:51
- 阅读:1414
产品分类: 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'  
                                    })  
                                })  
                            }  
                        }  
                    })  
                }  
            }预期结果:
                                    
                                    
                                        分享多图成功
                                     
                                
                                                                                                分享多图成功
实际结果:
                                    
                                    
                                        多文件分享仅支持图片 单张图片会成功
                                     
                                
                                                            多文件分享仅支持图片 单张图片会成功
最佳回复
 
                                                                    
                                                                3***@qq.com (作者)
HX3.0.1正式打包后可复现
- 
                                                  
- 
                                                  
- 
                                                  回复 3***@qq.com: 之前是自动向相册插入图片,不过在android10+版本玩不通了,只有向相册保存你的图片再分享。 这种方式对手机用户不友好所以需要开发者自己决定是否需要保存到相册。更高版本的手机系统也会出现安全提示,所以建议使用微信分享模块来处理 2020-12-25 15:05 
- 
                                                  
- 
                                                  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: 你还是没理解问题。。安卓10+ 我用hx2.8.13打的包也是可以分享的,但是用hx3.0.0以上打的包是分享失败的。 2020-12-29 10:21 
- 
                                                  
- 
                                                  3***@qq.com (作者) 回复 DCloud_Android_ST: 无论是安卓9 还是安卓10+。用hx2.8.13打的包都是可以分享的,用hx3.0.0+都会失败! 2020-12-29 11:33 
- 
                                                  部分市场已经要求targetSdkVersion大于29了,android10+就会无法分享了必须将图片保存到相册才可以。不知道你为什么那么执着与系统分享。我们是推荐您使用uniapp封装的微信分享模块来分享。如果targetSdkVersion对你们的应用没有影响的话那可以暂时先使用2.8.13版本来打包使用 2020-12-29 11:53 
- 
                                                  
- 
                                                  
- 
                                                  
- 
                                                  回复 3***@qq.com: 老版本2.8.13会主动将图片插入到相册数据库中。不过这种玩法在高版本系统会被误报对相册污染操作。所以已经去掉了。 交由开发者自己主动调用保存到相册。所以新版本会无法分享。你只需要将图片保存到相册再分享即可。微信SDK目前也仅支持一张图片分享模式。猜测之后的多图可能也会慢慢被移除。 2020-12-30 11:01 
- 
                                                  
- 
                                                  
- 
                                                  3***@qq.com (作者) 回复 DCloud_Android_ST: 分享相册图片 相册图片的路径怎么获得 uni.saveImageToPhotosAlbum后也没返回路径! 2020-12-30 13:30 
- 
                                                  回复 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: 这个问题又出现了。。。用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 
- 
                                                  
- 
                                                  
- 
                                                  3***@qq.com (作者) 回复 DCloud_Android_ST: {"file":"file:///storage/emulated/0/DCIM/Camera/499446009416519680.jpg"} 这种路径 是属于相册路径吗 2021-01-07 16:34 
- 
                                                  
- 
                                                  3***@qq.com (作者) 回复 DCloud_Android_ST: file:///storage/emulated/0/DCIM/Camera/499446009416519680.jpg这个是plus.gallery.save返回的 那我分享的时候 需要切掉前面的吗 2021-01-07 16:38 
- 
                                                  
- 
                                                  
- 
                                                  
- 
                                                  
- 
                                                  
- 
                                                  
 
             
             
             
			
 
                                                                    

 
                                                                     
            
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