Yitind
Yitind
  • 发布:2020-11-09 17:12
  • 更新:2020-12-22 11:35
  • 阅读:1223

【报Bug】华为mate30 进行拍照水印绘制失败

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows 10 专业版

HBuilderX类型: 正式

HBuilderX版本号: 2.9.7

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: TAS-AL00

页面类型: vue

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

水印绘制实现


                        setTimeout(function() {  
                            uni.canvasToTempFilePath({  
                                canvasId: options.canvasId,  
                                fileType: options.fileType,  
                                width: photoWidth,  
                                height: photoHeight,  
                                success: function(res) {  
                                    markInfo.photoPath = res.tempFilePath;  
                                    resolve(markInfo);  
                                },  
                                fail: function(err) {  
                                    reject(err)  
                                }  
                            }, options._this);  
                        }, 150)  
                    });         ```

操作步骤:

在将应用安装到升级到emui 11 后会出现上诉想象!

预期结果:

希望能获取到水印图片,进行展示

实际结果:

现在返回报错:
{"errMsg":"canvasToTempFilePath:fail SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported."}

bug描述:

相关BUG出现机型说明
当前问题出现在更新了emui 11上(荣耀V30pro 在更新前Magic UI 4.0.0也是),在没有更新过的emui 10(mate30 pro)上可以正常获取绘制显示图片

这个是更新后的mate30  emui 11

相关报错信息
{"errMsg":"canvasToTempFilePath:fail SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported."}

相关水印实现,在以下附件中

2020-11-09 17:12 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

HBuilderX 2.9.11+ 已修复

Yitind

Yitind (作者)

另外直接使用 HBuilder X - Release Notes 2.9.7.20201105 真机调试也会出现这个。

DCloud_UNI_GSQ

DCloud_UNI_GSQ

看一下emui的具体版本号
看一下软件列表里(需要取消隐藏系统应用)webview的版本号
canvas上绘制的图片路径也提供一下

  • Yitind (作者)

    emui 就是11.0.0,webview 手机里显示的是huawei Webview 10.0.0.311

    荣耀V30pro 在更新前Magic UI 4.0.0 webview 手机里显示的是huawei Webview 10.0.0.311

    绘制canvas的图片是相机拍摄 获取路径

    2020-11-10 10:52

  • Yitind (作者)

    emui 具体版本是 11.0.0.145(COOE140R5P11patch01)

    2020-11-10 10:53

  • Yitind (作者)

    Magic UI具体版本是 4.0.0.138(COOE130R4P5patch02)

    2020-11-10 10:55

  • Yitind (作者)

    具体绘制过程在 watermark.zip 的js里

    2020-11-10 10:58

  • DCloud_UNI_GSQ

    回复 Yitind: 描述看起来有点奇怪,分别截图看下

    2020-11-10 10:59

  • Yitind (作者)

    回复 DCloud_UNI_GSQ: 已发图片

    2020-11-10 11:43

Yitind

Yitind (作者)

手机更新之后就出现上诉问题

  • DCloud_UNI_GSQ

    更新最新的 alpha

    2020-12-03 17:14

  • 喵窝

    回复 DCloud_UNI_GSQ: 你最新的alpha 在画图的时候 有问题 还有 无法调起相机 你们能不能别这样搞啊 会害死人的啊

    2020-12-31 18:16

  • DCloud_UNI_GSQ

    回复 喵窝: 能否详细说下

    2021-01-04 10:54

yuchu

yuchu

请问该问题解决了吗?我遇到同样的问题

  • DCloud_UNI_GSQ

    用2.9.11+

    2020-12-22 11:35

  • 1***@163.com

    回复 DCloud_UNI_GSQ:现在版本不是到2.9.8吗

    2020-12-23 10:23

  • Yitind (作者)

    回复 1***@163.com: 使用alpha版本,或者先转为base64之后在绘制

    2020-12-24 11:36

  • 8***@qq.com

    回复 DCloud_UNI_GSQ: 最新alpha版本在华为mate30 上绘制失败,原因是重置canvas宽高无效;

    2020-12-31 10:21

  • DCloud_UNI_GSQ

    回复 8***@qq.com: 详细说来

    2020-12-31 20:30

  • 8***@qq.com

    回复 DCloud_UNI_GSQ: 华为mate30 5G。canvas初始的宽高,获取到本地照片后getImageInfo返回的图片宽高去改变canvas的宽高后再$nextTick绘制canvas,canvas的初始宽高没有改变;

    2021-01-04 10:15

  • DCloud_UNI_GSQ

    回复 8***@qq.com: 是新版本才有的问题吗?

    2021-01-04 10:55

  • 8***@qq.com

    回复 DCloud_UNI_GSQ: 不清楚,因为老版本的mate30在canvasToTempFilePath报错,所以并不确定canvas的宽高是否改变。

    2021-01-04 14:09

  • 8***@qq.com

    回复 DCloud_UNI_GSQ: 手里有台Android 8.0的荣耀note8新老版本均无此问题;

    2021-01-04 14:16

  • DCloud_UNI_GSQ

    回复 8***@qq.com: 其他机型是否正常,老版本绘制base64是否正常?

    2021-01-04 14:21

  • 8***@qq.com

    回复 DCloud_UNI_GSQ: 手里有台Android8.0的荣耀note8新老版本都无此问题,都正常。老版本base64绘制正常;

    2021-01-04 15:23

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