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%')
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS Web打开在线html,打开IP地址图片,图片加载不出来
1253浏览 • 1回复 待解决
HarmonyOS web组件加载url后,图片显示不出来
2247浏览 • 1回复 待解决
HarmonyOS 地图组件加载不出来,显示空白
2083浏览 • 1回复 待解决
HarmonyOS scrollbar显示不出来
766浏览 • 1回复 待解决
HarmonyOS 地图加载不出来,只显示背景
1827浏览 • 1回复 待解决
HarmonyOS 地图加载不出来
1048浏览 • 1回复 待解决
HarmonyOS Web组件解析html文本解析不出来
820浏览 • 1回复 待解决
HarmonyOS html文本,使用richtext组件展示不出来
819浏览 • 1回复 待解决
HarmonyOS Lottie动画加载不出来
876浏览 • 1回复 待解决
HarmonyOS开发中地图组件加载不出来,显示空白?
943浏览 • 1回复 待解决
HarmonyOS 地图不展示,显示空地图,地图加载不出来
1283浏览 • 1回复 待解决
开启混淆后,卡片加载不出来
7208浏览 • 1回复 待解决
HarmonyOS NEXT地图组件加载不出来,显示空白,怎么回事?
893浏览 • 0回复 待解决
HarmonyOS 在使用subwindow加载页面的时候,页面显示不出来
1274浏览 • 1回复 待解决
网页的开发文档,很多图片都显示不出来
1153浏览 • 1回复 待解决
HarmonyOS 地图服务地图页面加载不出来
894浏览 • 1回复 待解决
HarmonyOS list最后一个显示不出来
945浏览 • 1回复 待解决
HarmonyOS 文件路径有 # 号时,图片好像显示不出来,怎么处理
900浏览 • 1回复 待解决
HarmonyOS 多模块下悬浮窗显示不出来
1193浏览 • 1回复 待解决
HarmonyOS web加载接口返回的html,src 必须默认放一个加载链接,不然加载不出来
602浏览 • 1回复 待解决
HarmonyOS 私库部署后显示不出来README和CHANGELOG
674浏览 • 1回复 待解决
HarmonyOS 页面中有网络请求,预览器就加载不出来
805浏览 • 1回复 待解决
HiLog日志打印不出来?
12216浏览 • 3回复 已解决
HarmonyOS 首次在应用中触发web组件加载pdf,会加载不出来
1083浏览 • 1回复 待解决
priviewer为什么只能文字Text标签显示正常,图片Image标签都显示不出来,设置了默认图片的
9165浏览 • 2回复 待解决
看一下mimetype是不是image图片类型的
let mimeType = this.mimeTypeMap.get(rawfileName);