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离线加载请求跨域问题
572浏览 • 1回复 待解决
HarmonyOS Web组件无法跨域加载图片资源
65浏览 • 1回复 待解决
HarmonyOS Web组件跨域请求问题
406浏览 • 1回复 待解决
HarmonyOS Web组件本地资源跨域问题
54浏览 • 1回复 待解决
HarmonyOS Web组件打开file://协议的本地文件会崩溃
444浏览 • 1回复 待解决
HarmonyOS Web组件如何预览file协议沙盒pdf 文件
688浏览 • 1回复 待解决
HarmonyOS webview跨域问题
697浏览 • 1回复 待解决
Web组件如何访问跨域资源?
436浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何解决Web组件本地资源跨域问题?
70浏览 • 1回复 待解决
跨域请求问题(HarmonyOS的跨域判断机制相对于业界是否有特别处理)
1942浏览 • 1回复 待解决
Web组件加载不存在的file协议地址时没有触发onLoadIntercept和onErrorReceive生命周期
231浏览 • 1回复 待解决
iframe标签 src内部访问top跨域问题
302浏览 • 1回复 待解决
HarmonyOS 本地webView跨域方案
820浏览 • 1回复 待解决
HarmonyOS webview是否支持跨域
51浏览 • 1回复 待解决
webview中跨域问题解决方案
2690浏览 • 1回复 待解决
HarmonyOS Image组件加载缓存文件中的图片问题
638浏览 • 1回复 待解决
通过picker选择图片后,返回file://***协议,如何通过Image展示?
750浏览 • 1回复 待解决
HarmonyOS web组件加载网页中部分图片显示有问题
780浏览 • 1回复 待解决
HarmonyOS 如何将一个file://协议的uri转为internal://协议类型
41浏览 • 1回复 待解决
HarmonyOS web加载页面图片不显示
507浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用鸿蒙Web组件本地资源跨域拦截器?
56浏览 • 1回复 待解决
HarmonyOS 作用域问题
44浏览 • 1回复 待解决
HarmonyOS web组件加载pdf问题
644浏览 • 1回复 待解决
HarmonyOS web上传文件和图片
263浏览 • 1回复 待解决
file协议由于安全策略限制不允许跨域,可通过以下方式规避:https://gitee.com/openharmony/docs/pulls/40014/files
PhotoViewPicker获取的地址并非应用沙箱路径,需要先将图片复制到应用沙箱路径。
如果是离线H5加载的webview,不需要处理跨域;如果是https URL加载的webview,需要构造虚拟域名加载本地沙箱路径image资源,并设置file.fd为responseData返回以下为示例代码: