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离线加载请求跨域问题
297浏览 • 1回复 待解决
HarmonyOS Web组件跨域请求问题
37浏览 • 1回复 待解决
HarmonyOS webview跨域问题
408浏览 • 1回复 待解决
HarmonyOS Web组件打开file://协议的本地文件会崩溃
244浏览 • 1回复 待解决
HarmonyOS Web组件如何预览file协议沙盒pdf 文件
418浏览 • 1回复 待解决
Web组件如何访问跨域资源?
279浏览 • 1回复 待解决
跨域请求问题(HarmonyOS的跨域判断机制相对于业界是否有特别处理)
1764浏览 • 1回复 待解决
HarmonyOS 本地webView跨域方案
450浏览 • 1回复 待解决
Web组件加载不存在的file协议地址时没有触发onLoadIntercept和onErrorReceive生命周期
59浏览 • 1回复 待解决
iframe标签 src内部访问top跨域问题
38浏览 • 1回复 待解决
HarmonyOS Image组件加载缓存文件中的图片问题
326浏览 • 1回复 待解决
webview中跨域问题解决方案
2178浏览 • 1回复 待解决
通过picker选择图片后,返回file://***协议,如何通过Image展示?
592浏览 • 1回复 待解决
HarmonyOS web加载页面图片不显示
297浏览 • 1回复 待解决
HarmonyOS web组件加载网页中部分图片显示有问题
399浏览 • 1回复 待解决
HarmonyOS web组件加载pdf问题
364浏览 • 1回复 待解决
HarmonyOS web上传文件和图片
103浏览 • 1回复 待解决
web组件对html文件的加载
654浏览 • 1回复 待解决
HarmonyOS Web组件加载html文件异常
321浏览 • 1回复 待解决
HarmonyOS Image 加载网络图片问题
382浏览 • 1回复 待解决
HarmonyOS Web组件HTTP图片加载如何放行
310浏览 • 1回复 待解决
HarmonyOS 关于Web加载资源异常毁掉问题
37浏览 • 1回复 待解决
如何使用Web组件加载本地的html文件?
433浏览 • 1回复 待解决
如何禁止web组件自动加载图片?
650浏览 • 1回复 待解决
HarmonyOS 使用web组件如何加载https链接中的http图片?
51浏览 • 1回复 待解决
file协议由于安全策略限制不允许跨域,可通过以下方式规避:https://gitee.com/openharmony/docs/pulls/40014/files
PhotoViewPicker获取的地址并非应用沙箱路径,需要先将图片复制到应用沙箱路径。
如果是离线H5加载的webview,不需要处理跨域;如果是https URL加载的webview,需要构造虚拟域名加载本地沙箱路径image资源,并设置file.fd为responseData返回以下为示例代码: