HarmonyOS webview的跨域问题?

我们的应用需要加载本地的前端代码。代码通过网络下载到本地,然后加载。

但是有些前端代码,在本地模块中通过request的方式拿本地页面,导致跨域(说法是file协议不支持跨域)然后就按照指南的建议,使用Https的地址来替换协议(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-cross-origin-V5?catalogVersion=V5

但是遇到问题,无法加载本地文件,所有file开头的都加载不了。

然后发现有个api可以解决跨域问题,setPathAllowingUniversalAccess,但是这个只能在resource或者file文件夹下才可以,而且会导致fileAccess设置失效,开了这个之后,拍照或者相册获取的图片(file://media/xxxx)前端又加载不了了。

如何才能优雅的又能解决跨域,又能加载本地文件的办法呢

阅读 544
1 个回答

1、onInterceptRequest拦截方法,需要把对应的跨域资源都替换上去;或者不需要在地址里构建Https的地址,地址里依然加载本地资源,仅用onInterceptRequest拦截替换对应的跨域资源就行

2、setPathAllowingUniversalAccess会导致fileAccess失效,这个方法需要将资源拷贝到resfile目录下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进