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请求报错,提示跨域了,这种如何解决?
923浏览 • 1回复 待解决
HarmonyOS web离线加载请求跨域问题
1663浏览 • 1回复 待解决
HarmonyOS Web组件无法跨域加载图片资源
807浏览 • 1回复 待解决
HarmonyOS Web通过file协议加载应用沙箱文件失败
803浏览 • 1回复 待解决
HarmonyOS web资源跨域问题
1139浏览 • 1回复 待解决
HarmonyOS Web本地资源跨域加载异常
772浏览 • 1回复 待解决
HarmonyOS 加载图片报跨域错误
599浏览 • 1回复 待解决
HarmonyOS Web组件跨域请求问题
1366浏览 • 1回复 待解决
HarmonyOS Web组件本地资源跨域问题
725浏览 • 1回复 待解决
HarmonyOS web组件加载本地离线包的cookie跨域
1198浏览 • 1回复 待解决
HarmonyOS Web组件加载本地H5文件跨域
1325浏览 • 1回复 待解决
HarmonyOS web加载本地h5页面的网络请求跨域问题
1086浏览 • 1回复 待解决
HarmonyOS Web组件打开file://协议的本地文件会崩溃
1298浏览 • 1回复 待解决
HarmonyOS webview无法加载file协议路径
872浏览 • 1回复 待解决
HarmonyOS Web跨域问题 Access-Control-Allow-Origin
928浏览 • 1回复 待解决
HarmonyOS webview跨域问题
1902浏览 • 1回复 待解决
HarmonyOS Web组件如何预览file协议沙盒pdf 文件
1698浏览 • 1回复 待解决
HarmonyOS web组件关闭跨域拦截
883浏览 • 1回复 待解决
HarmonyOS Web组件加载本地资源目录resource/rawfile下的html文件,页面内https请求报跨域问题
1401浏览 • 1回复 待解决
Web组件如何访问跨域资源?
1171浏览 • 1回复 待解决
HarmonyOS webview组件跨域问题
1268浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何解决Web组件本地资源跨域问题?
1258浏览 • 1回复 待解决
跨域请求问题(HarmonyOS的跨域判断机制相对于业界是否有特别处理)
2543浏览 • 1回复 待解决
HarmonyOS Web组件加载本地H5页面,页面中接口请求被跨域规则限制,如何解除跨域限制
1057浏览 • 1回复 待解决
HarmonyOS 本地内置页,是否可以通过file协议加载
631浏览 • 1回复 待解决
file协议由于安全策略限制不允许跨域,可通过以下方式规避:https://gitee.com/openharmony/docs/pulls/40014/files
PhotoViewPicker获取的地址并非应用沙箱路径,需要先将图片复制到应用沙箱路径。
如果是离线H5加载的webview,不需要处理跨域;如果是https URL加载的webview,需要构造虚拟域名加载本地沙箱路径image资源,并设置file.fd为responseData返回以下为示例代码: