HarmonyOS 加载html,图片显示不出来
解决Web组件本地资源跨域问题,使用这样的去加载 html,图片显示不出来,直接通过 raw 加载正常显示。这是怎么回事?
import { webview } from '@kit.ArkWeb';
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
webviewController: webview.WebviewController = new webview.WebviewController();
// 构造域名和本地文件的映射表
schemeMap = new Map([
["https://www.index.com/c02/s01f01.html", "c02/s01f01.html"],
["https://www.index.com/c02/s01f02.html", "c02/s01f02.html"],
])
// 构造本地文件和构造返回的格式mimeType
mimeTypeMap = new Map([
["c01/s01f01.html", 'text/html'],
["c02/s01f01.html", 'text/html'],
["c02/s01f02.html", 'text/html'],
])
build() {
Row() {
Column() {
// 针对本地index.html,使用http或者https协议代替file协议或者resource协议,并且构造一个属于自己的域名。
// 本例中构造www.index.com为例。
Web({ src: "https://www.index.com/c02/s01f01.html", controller: this.webviewController })
.javaScriptAccess(true)
.fileAccess(true)
.domStorageAccess(true)
.geolocationAccess(true)
.width("100%")
.height("100%")
.onInterceptRequest((event) => {
if (!event) {
return;
}
// 此处匹配自己想要加载的本地离线资源,进行资源拦截替换,绕过跨域
if (this.schemeMap.has(event.request.getRequestUrl())) {
let rawfileName: string = this.schemeMap.get(event.request.getRequestUrl())!;
let mimeType = this.mimeTypeMap.get(rawfileName);
if (typeof mimeType === 'string') {
let response = new WebResourceResponse();
// 构造响应数据,如果本地文件在rawfile下,可以通过如下方式设置
response.setResponseData($rawfile(rawfileName));
response.setResponseEncoding('utf-8');
response.setResponseMimeType(mimeType);
response.setResponseCode(200);
response.setReasonMessage('OK');
response.setResponseIsReady(true);
return response;
}
}
return null;
})
}
.width('100%')
}
.height('100%')
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS web组件加载url后,图片显示不出来
1176浏览 • 1回复 待解决
HarmonyOS Web打开在线html,打开IP地址图片,图片加载不出来
473浏览 • 1回复 待解决
HarmonyOS 地图组件加载不出来,显示空白
1010浏览 • 1回复 待解决
HarmonyOS 地图加载不出来,只显示背景
443浏览 • 1回复 待解决
HarmonyOS 地图加载不出来
20浏览 • 1回复 待解决
HarmonyOS Lottie动画加载不出来
30浏览 • 1回复 待解决
HarmonyOS开发中地图组件加载不出来,显示空白?
159浏览 • 0回复 待解决
HarmonyOS Web组件解析html文本解析不出来
34浏览 • 1回复 待解决
HarmonyOS html文本,使用richtext组件展示不出来
25浏览 • 1回复 待解决
HarmonyOS 地图不展示,显示空地图,地图加载不出来
321浏览 • 1回复 待解决
开启混淆后,卡片加载不出来
6380浏览 • 1回复 待解决
网页的开发文档,很多图片都显示不出来
267浏览 • 1回复 待解决
HarmonyOS 在使用subwindow加载页面的时候,页面显示不出来
526浏览 • 1回复 待解决
HarmonyOS NEXT地图组件加载不出来,显示空白,怎么回事?
207浏览 • 0回复 待解决
HarmonyOS list最后一个显示不出来
29浏览 • 1回复 待解决
HarmonyOS 文件路径有 # 号时,图片好像显示不出来,怎么处理
84浏览 • 1回复 待解决
HarmonyOS 多模块下悬浮窗显示不出来
387浏览 • 1回复 待解决
HarmonyOS 私库部署后显示不出来README和CHANGELOG
47浏览 • 1回复 待解决
HarmonyOS 页面中有网络请求,预览器就加载不出来
105浏览 • 1回复 待解决
HiLog日志打印不出来?
11199浏览 • 3回复 已解决
HarmonyOS 首次在应用中触发web组件加载pdf,会加载不出来
460浏览 • 1回复 待解决
Web组件加载某个页面,出现白屏、页面显示不出来,如何解决和定位
2530浏览 • 1回复 待解决
priviewer为什么只能文字Text标签显示正常,图片Image标签都显示不出来,设置了默认图片的
8320浏览 • 2回复 待解决
HarmonyOS web组件接入链接渲染不出来
21浏览 • 1回复 待解决
在继承FractionAbility声明定义TabList在layout中显示不出来
6943浏览 • 3回复 待解决
看一下mimetype是不是image图片类型的
let mimeType = this.mimeTypeMap.get(rawfileName);