在 OpenHarmony 中加载图表,通常有以下几种常见方式,取决于你使用的应用模型(ArkUI / eTS)以及图表复杂度。
OpenHarmony 生态中已有一些图表能力:
示例(Canvas 手绘折线图):
@Entry
@Component
struct ChartPage {
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
build() {
Column() {
Canvas(this.context)
.width('100%')
.height(300)
.onReady(() => {
this.drawLineChart()
})
}
}
drawLineChart() {
this.context.beginPath()
this.context.moveTo(50, 250)
this.context.lineTo(150, 100)
this.context.lineTo(250, 180)
this.context.stroke()
}
}
OpenHarmony 支持部分 JS/TS 图表库:
import web_webview from '@ohos.web.webview'
@Entry
@Component
struct EChartsPage {
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Column() {
Web({ src: $rawfile('echarts.html'), controller: this.controller })
}
}
}
echarts.html 中引入 ECharts 并初始化。
一般步骤:
示例(伪代码):
Chart()
.type(ChartType.Line)
.data([10, 20, 15, 30])
@State data: number[] = []
aboutToAppear() {
// 模拟网络加载
setTimeout(() => {
this.data = [5, 10, 15, 20]
}, 1000)
}
| 场景 | 推荐方式 |
|---|---|
| 简单图表 | Canvas |
| 复杂交互 | ECharts + Web |
| 原生体验 | 三方 ArkUI 图表库 |
如果你能告诉我:
我可以直接给你可运行示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。