记一次鸿蒙webview图片渲染失败的问题

记一次鸿蒙webview图片渲染失败的问题

如上图,在鸿蒙手机内h5部分页面中的图片渲染不出来,一开始以为是图片地址有问题,但是安卓和IOS页面中的图片都能正常渲染,而且吧图片复制出来在浏览器图片可能正常展示,本地开发环境和测试环境h5图片也能正常加载,于是排除了图片地址的问题

思来想去,不知道如何查看,因为是线上环境没办法用charles抓包,既然没办法用charles,那能不能调试一下webview里面的h5,去华为官网搜了下,果然可以调试

通过浏览器调试工具,可以看到接口以及图片的信息,经过一番对比,发现只要是http协议的图片都不能加载出来

猜测可能是https的域名加载了http协议的图片,于是去查webview相关的文档,果然有个属性**mixedMode默认的 mixedMode**不能从https域名加载http协议的资源

于是将Web组件的mixedMode设置为MixedMode.All,图片就可以正常展示出来了

示例代码如下:

jsx 复制代码
import { webview } from '@kit.ArkWeb';

@Entry
@Component
struct WebComponent {
  controller: webview.WebviewController = new webview.WebviewController();
  @State mode: MixedMode = MixedMode.All;
  build() {
    Column() {
      Web({ src: 'www.example.com', controller: this.controller })
        .mixedMode(this.mode)
    }
  }
}
相关推荐
BillKu2 小时前
Vue3 + Element-Plus 抽屉关闭按钮居中
前端·javascript·vue.js
DevilSeagull2 小时前
JavaScript WebAPI 指南
java·开发语言·javascript·html·ecmascript·html5
面向星辰3 小时前
html中css的四种定位方式
前端·css·html
Async Cipher3 小时前
CSS 权重(优先级规则)
前端·css
大怪v3 小时前
前端佬:机器学习?我也会啊!😎😎😎手“摸”手教你做个”自动驾驶“~
前端·javascript·机器学习
Liquad Li4 小时前
Angular 面试题及详细答案
前端·angular·angular.js
用户21411832636024 小时前
首发!即梦 4.0 接口开发全攻略:AI 辅助零代码实现,开源 + Docker 部署,小白也能上手
前端
gnip6 小时前
链式调用和延迟执行
前端·javascript
SoaringHeart6 小时前
Flutter组件封装:页面点击事件拦截
前端·flutter
杨天天.6 小时前
小程序原生实现音频播放器,下一首上一首切换,拖动进度条等功能
前端·javascript·小程序·音视频