HarmonyOS web加载file://协议的图片文件,提示跨域问题
我有如下一个使用场景:web里面有按钮点击调用PhotoViewPicker相册选择图片,然后将PhotoViewPicker选中的图片地址(是file://协议)回调给web显示出来。
在HarmonyOS系统里,PhotoSelectResult返回的是file://协议的地址,直接传给web无法读取。
报错信息:
Access to image at 'file://media/Photo/7/IMG_1712132973_004/IMG_004.jpg' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, arkweb, data, chrome-extension, chrome, https, chrome-untrusted.
demo代码:
let PhotoSelectOptions = new picker.PhotoSelectOptions();
PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
PhotoSelectOptions.maxSelectNumber = result[0] as number;
let photoPicker = new picker.PhotoViewPicker();
photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult) => {
console.info('applog:' + PhotoSelectResult.photoUris);
let jsStr = `__record_callback(${JSON.stringify(PhotoSelectResult.photoUris)});`;
console.info('applog,jsStr:' + jsStr);
this.webController.runJavaScript(jsStr)
}).catch((err: BusinessError) => {
console.error('PhotoViewPicker.select failed with err: ' + err);
});
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS web组件通过file://协议加载本地文件,本地文件JS中发起http请求报错,提示跨域了,这种如何解决?
257浏览 • 1回复 待解决
HarmonyOS Web组件无法跨域加载图片资源
290浏览 • 1回复 待解决
HarmonyOS web离线加载请求跨域问题
777浏览 • 1回复 待解决
HarmonyOS Web通过file协议加载应用沙箱文件失败
235浏览 • 1回复 待解决
HarmonyOS web资源跨域问题
164浏览 • 1回复 待解决
HarmonyOS Web本地资源跨域加载异常
86浏览 • 1回复 待解决
HarmonyOS 加载图片报跨域错误
69浏览 • 1回复 待解决
HarmonyOS Web组件跨域请求问题
584浏览 • 1回复 待解决
HarmonyOS Web组件加载本地H5文件跨域
475浏览 • 1回复 待解决
HarmonyOS Web组件本地资源跨域问题
190浏览 • 1回复 待解决
HarmonyOS web组件加载本地离线包的cookie跨域
458浏览 • 1回复 待解决
HarmonyOS Web组件打开file://协议的本地文件会崩溃
699浏览 • 1回复 待解决
HarmonyOS web加载本地h5页面的网络请求跨域问题
216浏览 • 1回复 待解决
HarmonyOS webview无法加载file协议路径
235浏览 • 1回复 待解决
HarmonyOS Web跨域问题 Access-Control-Allow-Origin
185浏览 • 1回复 待解决
HarmonyOS webview跨域问题
1012浏览 • 1回复 待解决
HarmonyOS Web组件如何预览file协议沙盒pdf 文件
970浏览 • 1回复 待解决
HarmonyOS web组件关闭跨域拦截
142浏览 • 1回复 待解决
HarmonyOS Web组件加载本地资源目录resource/rawfile下的html文件,页面内https请求报跨域问题
449浏览 • 1回复 待解决
Web组件如何访问跨域资源?
582浏览 • 1回复 待解决
HarmonyOS webview组件跨域问题
194浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何解决Web组件本地资源跨域问题?
435浏览 • 1回复 待解决
跨域请求问题(HarmonyOS的跨域判断机制相对于业界是否有特别处理)
2047浏览 • 1回复 待解决
HarmonyOS Web组件加载本地H5页面,页面中接口请求被跨域规则限制,如何解除跨域限制
148浏览 • 1回复 待解决
HarmonyOS 本地内置页,是否可以通过file协议加载
162浏览 • 1回复 待解决
file协议由于安全策略限制不允许跨域,可通过以下方式规避:https://gitee.com/openharmony/docs/pulls/40014/files
PhotoViewPicker获取的地址并非应用沙箱路径,需要先将图片复制到应用沙箱路径。
如果是离线H5加载的webview,不需要处理跨域;如果是https URL加载的webview,需要构造虚拟域名加载本地沙箱路径image资源,并设置file.fd为responseData返回以下为示例代码: