Page 1 of 1

【求助】iOS18版本中通过canvas绘制Image会固定出现onError:{isTrusted:true}

Posted: 2026年 Jan 12日 18:23
by ligong
  • Tuya MiniApp IDE 版本信息:0.10.7-nightly.10815;

    • App 应用版本信息: 7.2.0

    • @ray-js/ray, @ray-js/panel-sdk的版本(如使用ray开发)在package.json查看~

    • 移动设备信息:iPhone13 iOS18.3.1

    • 相关代码:```javascript
      const img = canvas.createImage();
      return new Promise((resolve, reject) => {
      img.onload = () => {
      setTimeout(() => {
      resolve(img);
      }, 100);
      };
      img.onerror = e => {
      console.error(
      'loadImageToCanvas',
      iOS 18 加载图片失败: ${e.isTrusted ? '系统拦截' : '代码问题'}
      );

      reject(iOS 18 加载图片失败: ${e.isTrusted ? '系统拦截' : '代码问题'});
      };
      img.src = imageUrl;
      });

Code: Select all

	
	- 日志信息:~错误日志或 IDE 运行日志等~
	
	- 问题描述(复现步骤):传入图片本地路径到rjs通过canvas渲染失败, 

然后尝试了js层通过fs将图片转成base64再传给RJS中通过canvas渲染, 但是在传输base64数据过程中都会阻塞一段时间, 10M的jpg会阻塞10S+, 调用压缩图片方法会导致图片变糊
	
	- 预期结果:
	
	- 实际结果:

Re: 【求助】iOS18版本中通过canvas绘制Image会固定出现onError:{isTrusted:true}

Posted: 2026年 Jan 12日 18:31
by Lucy

你好,iOS 18 对 Canvas Image 加载与跨线程 / 跨域 / 内存安全策略进一步收紧导致的,需要客户端改成改成http协议以解决跨域问题, 这个客户端排期没那么快哦, 建议先将ios18单独判断处理。 我们会跟进,有进展会同步你。


Re: 【求助】iOS18版本中通过canvas绘制Image会固定出现onError:{isTrusted:true}

Posted: 2026年 Jan 13日 10:49
by ligong

图片是C端用户可以从系统选择任意图片的, 并且后续需要调用ray的裁剪等方法, 所以无法都存储到云端. 希望可以尽快解决. 感谢!