HarmonyOS 鸿蒙Next Web组件本地资源跨域问题怎么解决?通过setPathAllowingUniversalAccess设置一个路径列表,使用file协议访问该列表中的资源,允许进行跨域访问本地文件后加载本地html页面仍然显示白屏

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Web组件本地资源跨域问题怎么解决?通过setPathAllowingUniversalAccess设置一个路径列表,使用file协议访问该列表中的资源,允许进行跨域访问本地文件后加载本地html页面仍然显示白屏

代码demo地址:https://gitee.com/BATMANDARK/webviewtest.git,用了setPathAllowingUniversalAccess之后仍然加载不出页面

3 回复

1、setPathAllowingUniversalAccess  2、.fileAccess(true) 之后可以使用file协议加载本地的简易html

      Web({ src: "", controller: this.controller })
       .onControllerAttached(() => {
         let context = getContext() as common.UIAbilityContext
         const resourceDir = context.resourceDir;
         this.controller.setPathAllowingUniversalAccess([
           resourceDir, // 应用资源目录
         ]);

         // 加载本地HTML文件
         this.controller.loadUrl("file://" + resourceDir + `/native/index1.html`);
       })
       .fileAccess(true)
       .javaScriptAccess(true)
       .domStorageAccess(true)
       .onlineImageAccess(true)

就是这样写的,但是页面仍然加载不出

HarmonyOS 鸿蒙Next Web组件在处理本地资源跨域问题时,若已使用setPathAllowingUniversalAccess方法设置了一个允许跨域访问的路径列表,并尝试通过file协议访问这些资源,但本地HTML页面仍然显示白屏,可能的原因及解决方案如下:

  1. 路径配置检查:确保setPathAllowingUniversalAccess中设置的路径准确无误,且该路径确实包含了需要访问的本地文件。路径错误或遗漏可能导致资源无法正确加载。

  2. 协议一致性:确认访问资源的协议(如file://)与设置的路径协议一致。不一致可能导致访问权限未被正确应用。

  3. 资源文件完整性:检查HTML文件及其依赖的CSS、JS等资源文件是否完整无损,文件损坏或缺失也会导致页面无法正常显示。

  4. 浏览器缓存:尝试清除浏览器缓存或使用无痕模式访问,以排除缓存干扰。

  5. 调试工具:利用开发者工具(如Chrome DevTools)检查控制台是否有错误信息,这有助于定位问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部