HarmonyOS 鸿蒙Next:web加载HTML格式的文本数据,显示不全
HarmonyOS 鸿蒙Next:web加载HTML格式的文本数据,显示不全
更多关于HarmonyOS 鸿蒙Next:web加载HTML格式的文本数据,显示不全的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
import web_webview from '@ohos.web.webview';
@Entry
@Component
struct Index {
controller: web_webview.WebviewController = new web_webview.WebviewController();
dataStr3 = `<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<meta name=""viewport"" content=""initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"">
<title>测试文件</title></head>
<body>
<div>
<p style=""text-align: justify;""><span style=""font-size: 36px; font-family: 宋体, SimSun; color: #FF0000;""><strong>我是测试内容</strong></span>
</p>
<p style=""text-align: justify;""><span style=""font-size: 16px;"">近年来,生态旅游越来越受到游客喜爱。这个“十一”假期,文化和旅游部与国家林业和草原局将联合推出14条特色生态旅游线路,带领大家领略祖国的壮丽河山。</span>
</p>
<p>
<img src=""https://pics1.baidu.com/feed/c83d70cf3bc79f3d05080f748d52621f708b298f.jpeg@f_auto?token=0d6c9427bad7e407a93bd8a4ddeb0910""
width=""640"" class=""_1g4Ex _1i_Oe""
style=""border: 1px solid rgba(0, 0, 0, 0.05); width: 100%; border-radius: 13px; max-width: 100%;""/></p>
<p><span class=""bjh-p"" style=""overflow-y: auto; max-width: 100%;""> 这14条特色生态旅游线路以国家公园、风景名胜区、森林公园、湿地公园、地质公园等为基础,并结合交通干线进行串联,涉及安徽皖南人文山水、新疆阿勒泰千里画廊等生态旅游线路。14条线路共涵盖3处世界自然与文化双遗产、6处世界自然遗产、1处世界文化遗产、15家国家5A级旅游景区、28家国家森林公园、74处自然保护地。这些线路既有经典旅游产品,也有新兴旅游线路,更有创新业态组合,让游客假期出行有多样化的选择。</span>
</p>
<p><span class=""bjh-p"" style=""overflow-y: auto; max-width: 100%;"">来源:央视网</span></p>
<p><a href=""http://www.baidu.com"" target=""_self"" title=""百度链接-当前页面打开"" textvalue=""百度链接内容""><span
class=""bjh-p"" style=""overflow-y: auto; max-width: 100%;"">百度链接内容</span></a></p>
<p><a href=""http://www.baidu.com"" target=""_blank"" title=""百度链接-新窗口打开标题""
textvalue=""百度链接-新窗口打开""><span class=""bjh-p""
style=""overflow-y: auto; max-width: 100%;"">百度链接-新窗口打开</span></a>
</p>
</div>
</body>
</html>`
build() {
Column() {
this.test1()
}
}
@Builder
test1() {
// 组件创建时,加载www.example.com
Web({ src: '', controller: this.controller })
.onControllerAttached(() => {
this.controller.loadData(
encodeURIComponent(this.dataStr3),
""text/html"",
""UTF-8""
);
})
.width('100%')
.height('100%')
.backgroundColor(Color.Green)
}
}
您将上面的demo中的Html替换为您的html文件是可以加载的哦,这边实践是可以的,您试试呢。(因为您的html文件太长,所以demo里面用的另一个html哈) 您提供下您的IDE和工程机版本呢?这边用NEXT0.0.60加载是正常的。 您把.layoutMode(WebLayoutMode.FIT_CONTENT) 改成 layoutMode(WebLayoutMode.NONE) 就可以全部加载。
Web({ src: '', controller: this.controller, renderMode: RenderMode.SYNC_RENDER })
.onControllerAttached(()=>{
this.controller.loadData(
encodeURIComponent(this.dataStr3),
""text/html"",
""UTF-8""
);
})
.margin({bottom:20})
.verticalScrollBarAccess(false)
.horizontalScrollBarAccess(false)
.javaScriptAccess(true)
.cacheMode(CacheMode.None)
.layoutMode(WebLayoutMode.NONE)
.nestedScroll({
scrollForward: NestedScrollMode.PARENT_FIRST,
scrollBackward: NestedScrollMode.SELF_FIRST
})
// .height(this.showWeb ? px2vp(this.controller?.getPageHeight()) : 0)
.constraintSize({
minWidth: '100%',
minHeight: 50
})
这段代码是根据您给的demo改的,把.layoutMode(WebLayoutMode.FIT_CONTENT) 改成 layoutMode(WebLayoutMode.NONE) 就可以全部加载,这边实际验证是可以加载的哦。 找到原因了,数据要重新编码encodeURIComponent(str),"
更多关于HarmonyOS 鸿蒙Next:web加载HTML格式的文本数据,显示不全的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS 鸿蒙Next中web加载HTML格式的文本数据显示不全的问题,以下是一些可能的原因及解决方案:
- 内容过长或样式复杂:HTML内容过长或包含大量样式和脚本,可能导致加载和渲染不完全。建议优化HTML内容,减少不必要的样式和脚本,或分段加载显示。
- Web组件限制:检查是否受Web组件的某些特性或限制影响,如视口大小、字体渲染等。尝试调整这些设置,以适应HTML内容的显示需求。
- 布局问题:确保Web组件的布局属性设置正确,特别是高度和宽度。如果高度设置不当,可能导致内容显示不全。建议显式设置高度,确保其足够容纳HTML内容。
- 系统兼容性问题:确保设备已升级至最新版本的鸿蒙系统,并检查系统是否对Web组件进行了优化或修复。
如果以上方案无法解决问题,可能是由于特定场景或代码实现上的问题。此时,建议仔细检查代码实现,或参考官方文档和示例代码。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。