知识地图页 及 知识地图详情页

This commit is contained in:
huangge1199 2024-10-28 15:51:44 +08:00
parent 5d57af4f01
commit e235156024
13 changed files with 599 additions and 4 deletions

View File

@ -141,7 +141,8 @@ export class CommonConstants {
new Link("方法页","pages/Method"), new Link("方法页","pages/Method"),
new Link("待办页","pages/ToDoListPage"), new Link("待办页","pages/ToDoListPage"),
new Link("生命周期","pages/LifeCyclePage"), new Link("生命周期","pages/LifeCyclePage"),
new Link("快速入门","pages/QuickStart") new Link("快速入门","pages/QuickStart"),
new Link("知识地图页","pages/KnowledgeMap")
]; ];
/** /**

View File

@ -38,9 +38,9 @@ struct Index {
.width('80%') .width('80%')
.height('5%') .height('5%')
.onClick(() => { .onClick(() => {
console.info(`Succeeded in clicking the 'Next' button.`) console.info(`Succeeded in clicking the ${link.name} button.`)
router.pushUrl({ url: link.path }).then(() => { router.pushUrl({ url: link.path }).then(() => {
console.info('Succeeded in jumping to the second page.') console.info(`Succeeded in jumping to the ${link.name} page.`)
}).catch((err: BusinessError) => { }).catch((err: BusinessError) => {
console.error(`Failed to jump to the second page. Code is ${err.code}, message is ${err.message}`) console.error(`Failed to jump to the second page. Code is ${err.code}, message is ${err.message}`)
}) })

View File

@ -0,0 +1,78 @@
import BackView from "../view/BackView";
import { NavBarItem, NavBarItemType } from "../view/NavBarItem";
import { Section } from "./KnowledgeMapContent";
import { BusinessError } from "@kit.BasicServicesKit";
import { util } from "@kit.ArkTS";
@Entry
@Preview
@Component
export struct KnowledgeMap {
@State navBarList: NavBarItemType[] = [
{ order: '01', title: '准备与学习' },
{ order: '02', title: '构建应用' },
{ order: '03', title: '应用测试' },
{ order: '04', title: '上架' },
{ order: '05', title: '运营增长' },
{ order: '06', title: '商业变现' },
{ order: '07', title: '更多' }
];
@State sections: Section[] = [];
build() {
Scroll() {
Column() {
Text('知识地图')
.fontFamily('HarmonyHeiTi-Bold')
.fontSize(24)
.fontColor(Color.Black)
.textAlign(TextAlign.Start)
.lineHeight(33)
.fontWeight(700)
.width('100%')
Image($r('app.media.knowledge_map_banner'))
.width('100%')
.borderRadius(16)
.margin({ top: 19, bottom: 8 })
Text('通过循序渐进的学习路径无经验和有经验的开发者都可以轻松掌握ArkTS语言声明式开发范式体验更简洁、更友好的HarmonyOS应用开发旅程。')
.fontFamily('HarmonyHeiTi')
.fontSize(14)
.fontColor('rgba(0,0,0,0.60)')
.fontWeight(400)
.textAlign(TextAlign.Start)
List({ space: 12 }) {
ForEach(this.navBarList, (item: NavBarItemType, index: number) => {
ListItem() {
NavBarItem({ navBarItem: item })
}
.width('100%')
}, (item: NavBarItemType): string => item.title)
}
.width('100%')
.margin({ top: 24 })
BackView()
}
.padding({ top: 12, right: 16, bottom: 12, left: 16})
.backgroundColor('#F1F3F5')
}
.backgroundColor('#F1F3F5')
.align(Alignment.TopStart)
.constraintSize({ minHeight: '100%' })
.edgeEffect(EdgeEffect.Spring)
}
getSections() {
try {
getContext(this).resourceManager.getRawFileContent("MapData.json", (error: BusinessError, value: Uint8Array) => {
const textDecoder = util.TextDecoder.create("utf-8");
const res = textDecoder.decodeWithStream(value, { stream: false });
this.sections = JSON.parse(res);
});
} catch (error) {
console.error(`callback getRawFileContent failed, error is ${JSON.stringify(error)}`)
}
}
aboutToAppear(): void {
this.getSections();
}
}

View File

@ -0,0 +1,114 @@
interface KnowledgeBaseItem {
type: string,
title: string
}
interface Material {
subtitle: string,
knowledgeBase: KnowledgeBaseItem[]
}
export interface Section {
title: string,
brief: string,
materials: Material[]
}
const TypeMapIcon: Record<string, string> = {
'指南': 'app.media.ic_guide',
'准备': 'app.media.ic_prepare',
'学习与获取证书': 'app.media.ic_medals',
'视频教程': 'app.media.ic_video',
}
@Component
export struct KnowledgeMapContent {
@Prop section: Section;
@Builder
KnowledgeBlockLine(knowledgeBaseItem: KnowledgeBaseItem) {
Row() {
Image($r(TypeMapIcon[knowledgeBaseItem.type]))
.width(20)
.height(20)
Column() {
Text(knowledgeBaseItem.title)
.fontFamily('HarmonyHeiTi-Medium')
.fontSize(16)
.fontWeight(500)
Text(knowledgeBaseItem.type)
.fontFamily('HarmonyHeiTi')
.fontSize(14)
.fontWeight(400)
}
.alignItems(HorizontalAlign.Start)
.margin({ left: 18 })
}
.width('100%')
.height(64)
.alignItems(VerticalAlign.Center)
}
@Builder
KnowledgeBlock(material: Material) {
Column() {
Text(material.subtitle)
.fontFamily('HarmonyHeiTi-Medium')
.fontSize(14)
.fontWeight(500)
.margin({ bottom: 8 })
List({ space: 12 }) {
ForEach(material.knowledgeBase, (item: KnowledgeBaseItem, index: number) => {
ListItem(){
this.KnowledgeBlockLine(item)
}
}, (item: KnowledgeBaseItem, index: number) => item.title)
}
.backgroundColor(Color.White)
.borderRadius(16)
.padding({ left: 12, right: 12 })
.divider({
strokeWidth: 0.5,
startMargin: 38,
endMargin: 0,
color: '#F2F2F2'
})
}
.width('100%')
.margin({ top: 28 })
.alignItems(HorizontalAlign.Start)
}
scroller: Scroller = new Scroller();
build() {
Scroll(this.scroller) {
Column() {
Text(this.section?.title)
.fontFamily('HarmonyHeiTi-Bold')
.fontSize(20)
.fontWeight(700)
.fontColor(Color.Black)
Text(this.section?.brief)
.fontFamily('HarmonyHeiTi')
.fontSize(12)
.fontColor('rgba(0,0,0,0.60)')
.textAlign(TextAlign.JUSTIFY)
.fontWeight(400)
.margin({ top: 12 })
ForEach(this.section?.materials, (material: Material) => {
this.KnowledgeBlock(material)
}, (material: Material, index: number) => material.subtitle)
}
.alignItems(HorizontalAlign.Start)
.padding({top: 12, left: 16, bottom: 12, right: 16})
.backgroundColor('#F1F3F5')
}
.align(Alignment.TopStart)
.constraintSize({ minHeight: '100%' })
.edgeEffect(EdgeEffect.Spring)
.scrollable(ScrollDirection.Vertical)
.scrollBar(BarState.Auto)
.backgroundColor('#F1F3F5')
}
}

View File

@ -0,0 +1,39 @@
export interface NavBarItemType {
order: string,
title: string
}
@Component
export struct NavBarItem {
@Prop navBarItem: NavBarItemType;
build() {
Row(){
Text(this.navBarItem.order)
.margin({ right: 6 })
.fontFamily('HarmonyHeiTi-Bold')
.fontSize(21)
.fontColor('#182431')
.textAlign(TextAlign.Start)
.lineHeight(22)
.fontWeight(700)
Text(this.navBarItem.title)
.fontFamily('HarmonyHeiTi-Medium')
.fontSize(16)
.fontColor('#182431')
.textAlign(TextAlign.Start)
.lineHeight(22)
.fontWeight(500)
Blank()
Image($r('app.media.ic_arrow'))
.width(12)
.height(24)
}
.width('100%')
.height(48)
.borderRadius(16)
.alignItems(VerticalAlign.Center)
.padding({ left: 12, right: 12 })
.backgroundColor('#F1F3F5')
}
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="12px" height="24px" viewBox="0 0 12 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_arrow</title>
<defs>
<path d="M4.2482689,5.78255501 L4.28033009,5.81281566 L9.23007755,10.7625631 C9.8992572,11.4317428 9.91319844,12.5080354 9.27190128,13.1941781 L9.23007755,13.2374369 L4.28033009,18.1871843 C4.15145707,18.3160574 3.98735263,18.3882262 3.81902041,18.403691 L3.7730301,18.4065028 L3.7269699,18.4065028 C3.54277571,18.4008792 3.36025866,18.3277731 3.21966991,18.1871843 C2.93723717,17.9047516 2.92715028,17.4531048 3.18940926,17.1585854 L3.21966991,17.1265242 L7.81586399,12.5303301 C8.09829674,12.2478973 8.10838362,11.7962506 7.84612464,11.5017311 L7.81586399,11.4696699 L3.21966991,6.87347584 C2.9267767,6.58058262 2.9267767,6.10570888 3.21966991,5.81281566 C3.36088629,5.67159929 3.54440617,5.59846938 3.72943689,5.59342594 L3.77570243,5.59358355 C3.94528507,5.59936249 4.11328081,5.66235298 4.2482689,5.78255501 Z" id="path-1"></path>
</defs>
<g id="ic_arrow" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="路径" fill-opacity="0.2" fill="#000000" fill-rule="nonzero" xlink:href="#path-1"></use>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_guide</title>
<g id="ic_guide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.9">
<path d="M14.9520387,2 C16.0785183,2 17.0974296,2.62599999 17.6113673,3.633 C17.826504,4.052 17.9400484,4.524 17.9400484,5 C17.9400484,5.41400001 17.6053913,5.75000001 17.193046,5.75000001 C16.7807006,5.75000001 16.4460435,5.41400001 16.4460435,5 C16.4460435,4.759 16.3912634,4.52900001 16.282699,4.317 C16.0247342,3.813 15.5147805,3.5 14.9520387,3.5 L5.98800967,3.5 C5.164315,3.5 4.49400484,4.173 4.49400484,5 L4.49400484,19.0010001 C4.49400484,19.827 5.164315,20.5 5.98800967,20.5 L14.9520387,20.5 C15.7757334,20.5 16.4460435,19.827 16.4460435,19 L16.4460435,14.8424001 L13.7888065,17.5117 C13.7260583,17.5747 13.6533501,17.6257 13.5726739,17.6627001 L9.42830442,19.5697 C9.32870409,19.6157001 9.22312775,19.6377 9.11755141,19.6377 C8.92233477,19.6377 8.73010615,19.5607 8.58668169,19.4147001 C8.36656497,19.1917 8.30879679,18.8537001 8.44126521,18.5687001 L9.69523328,15.8937 C9.87052985,15.5187 10.3137513,15.3567 10.6892445,15.5337 C11.0617497,15.7107 11.2221062,16.1577 11.0468096,16.5327 L10.6623524,17.3517 L12.8276634,16.3557 L19.0503928,10.1072 L17.8958258,8.94800002 L12.1224931,14.7467001 C11.8306642,15.0397 11.3575626,15.0397 11.0657338,14.7467001 C10.7739048,14.4537 10.7739048,13.9797 11.0657338,13.6867 L18.0556843,6.66770001 C18.9421273,5.7777 20.397288,5.7667 21.2976748,6.64170001 C21.7458763,7.07870001 21.9948771,7.66370001 21.9999535,8.28970001 C22.0038411,8.91570001 21.7638044,9.50470001 21.323571,9.94870001 L17.9400484,13.3436001 L17.9400484,19 C17.9400484,20.6540001 16.599428,22 14.9520387,22 L5.98800967,22 C4.34062034,22 3,20.6540001 3,19.0010001 L3,5 C3,3.34599999 4.34062034,2 5.98800967,2 L14.9520387,2 Z M10.9680258,9.75000001 C11.3803712,9.75000001 11.7150283,10.086 11.7150283,10.5 C11.7150283,10.914 11.3803712,11.25 10.9680258,11.25 L6.48601129,11.25 C6.07366596,11.25 5.73900887,10.914 5.73900887,10.5 C5.73900887,10.086 6.07366596,9.75000001 6.48601129,9.75000001 L10.9680258,9.75000001 Z M19.1124438,7.7287 L18.952386,7.88720001 L20.106953,9.04640002 L20.2668115,8.88770002 C20.422188,8.73170001 20.5078443,8.52270001 20.5058523,8.30170001 C20.5038602,8.07970001 20.416212,7.8727 20.2578475,7.71870001 C19.9391264,7.40970001 19.4251887,7.4137 19.1124438,7.7287 Z M14.454037,5.75000001 C14.8663824,5.75000001 15.2010395,6.08600001 15.2010395,6.50000001 C15.2010395,6.91400001 14.8663824,7.25000001 14.454037,7.25000001 L6.48601129,7.25000001 C6.07366596,7.25000001 5.73900887,6.91400001 5.73900887,6.50000001 C5.73900887,6.08600001 6.07366596,5.75000001 6.48601129,5.75000001 L14.454037,5.75000001 Z" id="形状结合" fill="#000000" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_medals</title>
<g id="ic_medals" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.9">
<path d="M17.8994261,2 L18.0441561,2.00508838 C19.0480527,2.07592566 19.8500786,2.87795144 19.9209158,3.88184814 L19.9260042,4.02657807 L19.9260042,7.36307062 L19.9200516,7.49048201 C19.8809933,7.90719216 19.6519882,8.28312499 19.3002073,8.5090494 L19.1784918,8.57865184 L18.6977388,8.8548482 L18.6124086,8.8963426 C18.2939031,9.02538847 17.9211135,8.90240547 17.7456784,8.59584947 C17.5702434,8.28929348 17.6530605,7.90557713 17.9256739,7.6963391 L18.0046772,7.64378915 L18.5171588,7.35050754 L18.5297897,7.34589953 L18.5306553,4.02657807 L18.5238113,3.93329965 C18.4832346,3.65935041 18.2666539,3.44276965 17.9927046,3.40219299 L17.8994261,3.39534884 L15.9060465,3.39534884 L15.9065367,7.9168585 C18.2932957,9.1632915 19.9260042,11.6629693 19.9260042,14.5369979 C19.9260042,18.6527145 16.5787188,22 12.4630021,22 C8.34728548,22 5,18.6527145 5,14.5369979 C5,12.5134838 5.80935477,10.6755404 7.1213986,9.32991552 L5.7240958,8.57019532 L5.60816383,8.50258016 C5.27247821,8.28274197 5.048414,7.91398197 5.00695802,7.50463488 L5,7.36683124 L5,4.02657807 L5.00508838,3.88184814 C5.07592566,2.87795144 5.87795144,2.07592566 6.88184814,2.00508838 L7.02657807,2 L17.8994261,2 Z M12.4630021,8.4693446 L12.2457637,8.4731836 C9.00106334,8.58802965 6.39534884,11.2650533 6.39534884,14.5369979 C6.39534884,17.8820847 9.11791537,20.6046512 12.4630021,20.6046512 C15.8080888,20.6046512 18.5306553,17.8820847 18.5306553,14.5369979 C18.5306553,11.2650533 15.9249409,8.58802965 12.6802406,8.4731836 L12.4630021,8.4693446 Z M13.2208197,11.0944366 L13.2850407,11.2014885 L13.9469767,12.4651163 L15.4482331,12.671457 C16.2809681,12.7852793 16.6527876,13.7617717 16.1070382,14.3763915 L16.0262681,14.4584141 L14.9665116,15.4288372 L15.2144376,16.7906408 C15.3656808,17.6167354 14.5318047,18.226062 13.7894951,17.9431367 L13.6932798,17.9011178 L12.3413954,17.2316279 L10.9905748,17.9013146 C10.2586443,18.2629153 9.38796927,17.7030761 9.45550342,16.8975596 L9.4697214,16.7911545 L9.7172093,15.4297674 L8.65736525,14.4578454 C8.02723812,13.8786357 8.33598488,12.8820587 9.12526932,12.6922499 L9.23583452,12.6714824 L10.735814,12.4651163 L11.3998793,11.2002194 C11.7753261,10.4877474 12.7829865,10.4521238 13.2208197,11.0944366 Z M12.3423256,12.4074419 L11.6380008,13.7508619 L10.1693023,13.9516279 L11.228829,14.9220197 L10.9665116,16.3553488 L12.3421264,15.6756935 L13.7162791,16.3553488 L13.4560975,14.9220169 L14.5144186,13.9516279 L13.0462519,13.7508619 L12.3423256,12.4074419 Z M9.01953488,3.39534884 L7.02657807,3.39534884 L6.93329965,3.40219299 C6.65935041,3.44276965 6.44276965,3.65935041 6.40219299,3.93329965 L6.39534884,4.02657807 L6.39577167,7.34604651 L8.26970295,8.36613807 C8.51026665,8.2021553 8.76087169,8.0518586 9.02038882,7.91637751 L9.01953488,3.39534884 Z M14.5767442,3.39534884 L10.3488372,3.39534884 L10.3490962,7.37876983 C10.9486188,7.20144588 11.5793693,7.09755277 12.2308872,7.07755381 L12.4630021,7.07399577 L12.695117,7.07755381 C13.3468194,7.09755844 13.9777427,7.20150474 14.5774175,7.37892054 L14.5767442,3.39534884 Z" id="形状" fill="#000000" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_prepare</title>
<g id="ic_prepare" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.9">
<path d="M16,12 C18.209139,12 20,13.790861 20,16 C20,16.8978585 19.7041772,17.7266239 19.2046813,18.3941466 L20.8713203,20.0606602 C21.1642136,20.3535534 21.1642136,20.8284271 20.8713203,21.1213203 C20.5784271,21.4142136 20.1035534,21.4142136 19.8106602,21.1213203 L18.0960913,19.4074751 C17.4865617,19.7832234 16.7685963,20 16,20 C13.790861,20 12,18.209139 12,16 C12,13.790861 13.790861,12 16,12 Z M11.0605469,12.25 C11.4747604,12.25 11.8105469,12.5857864 11.8105469,13 C11.8105469,13.4142136 11.4747604,13.75 11.0605469,13.75 L6.85714286,13.75 C5.70180548,13.75 4.75,14.7493958 4.75,16 C4.75,17.2506042 5.70180548,18.25 6.85714286,18.25 L11.0605469,18.25 C11.4747604,18.25 11.8105469,18.5857864 11.8105469,19 C11.8105469,19.4142136 11.4747604,19.75 11.0605469,19.75 L6.85714286,19.75 C4.85656738,19.75 3.25,18.0631042 3.25,16 C3.25,13.9368958 4.85656738,12.25 6.85714286,12.25 Z M16,13.5 C14.6192881,13.5 13.5,14.6192881 13.5,16 C13.5,17.3807119 14.6192881,18.5 16,18.5 C17.3807119,18.5 18.5,17.3807119 18.5,16 C18.5,14.6192881 17.3807119,13.5 16,13.5 Z M16.9124188,3.25 C19.1995588,3.25 21.0909903,4.90500252 21.0909903,7 C21.0909903,9.09499748 19.1995588,10.75 16.9124188,10.75 L4,10.75 C3.58578644,10.75 3.25,10.4142136 3.25,10 C3.25,9.58578644 3.58578644,9.25 4,9.25 L5.981,9.25 L6.07129533,9.17027369 C6.65900267,8.60964966 7,7.83334314 7,7 C7,6.12379753 6.62235335,5.31199375 5.98373977,4.74926734 L4,4.75 C3.58578644,4.75 3.25,4.41421356 3.25,4 C3.25,3.58578644 3.58578644,3.25 4,3.25 L16.9124188,3.25 Z M8.5,7 C8.5,7.80675233 8.28607207,8.57916238 7.8972428,9.25139217 L16.9124188,9.25 C18.4123743,9.25 19.5909903,8.21871102 19.5909903,7 C19.5909903,5.78128898 18.4123743,4.75 16.9124188,4.75 L7.89789064,4.74976878 C8.28551109,5.42059375 8.5,6.1924905 8.5,7 Z" id="形状结合" fill="#000000" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_video</title>
<g id="ic_video" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.9">
<path d="M12,2 C14.4106408,2 16.69047,2.85673135 18.4868122,4.38946176 C18.8019118,4.65832072 18.8393973,5.13171263 18.5705382,5.4468122 C18.3016793,5.76191177 17.8282874,5.79939719 17.5131879,5.53053825 C15.9858576,4.22734258 14.0503421,3.5 12,3.5 C7.30621357,3.5 3.5,7.30621357 3.5,12 C3.5,16.6937865 7.30621357,20.5 12,20.5 C16.6937865,20.5 20.5,16.6937865 20.5,12 C20.5,10.3477134 20.0278934,8.76633273 19.1531162,7.4055682 C18.929127,7.05714067 19.0300043,6.59310527 19.3784319,6.36911615 C19.7268593,6.14512702 20.1908948,6.24600428 20.4148839,6.59443181 C21.4439645,8.19522384 22,10.057735 22,12 C22,17.5222136 17.5222136,22 12,22 C6.47778644,22 2,17.5222136 2,12 C2,6.47778644 6.47778644,2 12,2 Z M8.60450001,9.15880001 C8.60450001,7.81144221 10.0624689,6.96965732 11.2294595,7.64325759 L11.2294595,7.64325759 L16.1474323,10.4822419 C17.3145226,11.1558997 17.3145226,12.8397004 16.1475586,13.5132852 L16.1475586,13.5132852 L11.2294324,16.3533581 C10.0624689,17.0269427 8.60450001,16.1851578 8.60450001,14.8378 L8.60450001,14.8378 L8.60450001,9.15880001 Z M10.4795677,8.94235812 C10.3125764,8.84596884 10.1045,8.96610551 10.1045,9.15880001 L10.1045,9.15880001 L10.1045,14.8378 C10.1045,15.0304945 10.3125764,15.1506312 10.4794414,15.0543148 L10.4794414,15.0543148 L15.3975677,12.2142419 C15.5644775,12.1178997 15.5644775,11.8777004 15.3975405,11.7813424 L15.3975405,11.7813424 L10.4795677,8.94235812 Z" id="形状结合" fill="#000000" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

View File

@ -5,6 +5,7 @@
"pages/Method", "pages/Method",
"pages/ToDoListPage", "pages/ToDoListPage",
"pages/LifeCyclePage", "pages/LifeCyclePage",
"pages/QuickStart" "pages/QuickStart",
"pages/KnowledgeMap"
] ]
} }

View File

@ -0,0 +1,321 @@
[
{
"title": "准备与学习",
"brief": "加入HarmonyOS生态注册成为开发者通过HarmonyOS课程了解基本概念和基础知识轻松开启HarmonyOS的开发旅程。",
"materials": [
{
"subtitle": "HarmonyOS简介",
"knowledgeBase": [
{
"type": "准备",
"title": "注册账号"
},
{
"type": "准备",
"title": "实名认证"
},
{
"type": "学习与获取证书",
"title": "HarmonyOS第一课"
},
{
"type": "学习与获取证书",
"title": "HarmonyOS应用开发者基础认证"
}
]
},
{
"subtitle": "赋能套件介绍",
"knowledgeBase": [
{
"type": "指南",
"title": "开发"
},
{
"type": "指南",
"title": "最佳实践"
},
{
"type": "指南",
"title": "API参考"
},
{
"type": "指南",
"title": "视频教程"
},
{
"type": "指南",
"title": "Codelabs"
},
{
"type": "指南",
"title": "FAQ"
}
]
}
]
},
{
"title": "构建应用",
"brief": "为了帮助开发者更好的理解HarmonyOS提供的能力我们对重点功能提供了开发指导辅助开发者完成应用的开发。",
"materials": [
{
"subtitle": "开发工具",
"knowledgeBase": [
{
"type": "指南",
"title": "DevEco Studio"
},
{
"type": "指南",
"title": "低代码开发"
},
{
"type": "视频教程",
"title": "使用DevEco Studio高效开发"
}
]
},
{
"subtitle": "开发语言",
"knowledgeBase": [
{
"type": "指南",
"title": "ArkTS"
},
{
"type": "视频教程",
"title": "ArkTS基础知识"
},
{
"type": "视频教程",
"title": "ArkTS开发实践"
}
]
},
{
"subtitle": "开发框架",
"knowledgeBase": [
{
"type": "指南",
"title": "ArkTS"
},
{
"type": "视频教程",
"title": "ArkUI之属性动画"
}
]
},
{
"subtitle": "HarmonyOS云开发",
"knowledgeBase": [
{
"type": "指南",
"title": "体验HarmonyOS云开发"
},
{
"type": "指南",
"title": "云开发"
},
{
"type": "视频教程",
"title": "HarmonyOS云开发"
}
]
},
{
"subtitle": "集成开放能力",
"knowledgeBase": [
{
"type": "指南",
"title": "推送服务"
},
{
"type": "指南",
"title": "广告服务"
},
{
"type": "指南",
"title": "帐号服务"
},
{
"type": "指南",
"title": "分析服务"
},
{
"type": "指南",
"title": "应用内支付服务"
},
{
"type": "指南",
"title": "云函数"
},
{
"type": "指南",
"title": "云存储"
},
{
"type": "指南",
"title": "云数据库"
}
]
},
{
"subtitle": "编译调试",
"knowledgeBase": [
{
"type": "指南",
"title": "编译构建"
},
{
"type": "指南",
"title": "应用签名"
},
{
"type": "指南",
"title": "云调试"
},
{
"type": "视频教程",
"title": "HarmonyOS应用调试前准备"
},
{
"type": "视频教程",
"title": "HarmonyOS应用调试"
},
{
"type": "视频教程",
"title": "HarmonyOS调试工具介绍"
}
]
}
]
},
{
"title": "应用测试",
"brief": "HarmonyOS应用/服务开发完成后,在发布到应用/服务市场前还需要对应用进行漏洞、隐私、兼容性、稳定性、性能等测试确保HarmonyOS应用/服务纯净、安全,给用户带来更好的使用体验。",
"materials": [
{
"subtitle": "",
"knowledgeBase": [
{
"type": "指南",
"title": "云测试"
},
{
"type": "指南",
"title": "开放式测试"
}
]
}
]
},
{
"title": "上架",
"brief": "HarmonyOS应用/服务开发、测试完成后,将应用/服务发布至应用市场用户可以通过应用市场、负一屏等渠道获取到对应的HarmonyOS应用/服务。",
"materials": [
{
"subtitle": "应用发布",
"knowledgeBase": [
{
"type": "指南",
"title": "发布HarmonyOS应用"
},
{
"type": "指南",
"title": "发布元服务"
},
{
"type": "指南",
"title": "分阶段发布"
},
{
"type": "视频教程",
"title": "发布HarmonyOS应用"
},
{
"type": "视频教程",
"title": "发布元服务"
}
]
}
]
},
{
"title": "运营增长",
"brief": "HarmonyOS应用/服务发布以后通过数据及时了解运营情况、质量表现制定增长策略借助App Linking、崩溃服务等能力实现应用及服务的用户增长以及质量提升。",
"materials": [
{
"subtitle": "应用发布",
"knowledgeBase": [
{
"type": "指南",
"title": "应用分析"
},
{
"type": "指南",
"title": "App Linking"
},
{
"type": "指南",
"title": "崩溃服务"
},
{
"type": "视频教程",
"title": "远程配置"
},
{
"type": "视频教程",
"title": "发布元服务"
}
]
}
]
},
{
"title": "商业变现",
"brief": "HarmonyOS应用/服务发布以后通过数据及时了解运营情况、质量表现制定增长策略借助App Linking、崩溃服务等能力实现应用及服务的用户增长以及质量提升。",
"materials": [
{
"subtitle": "",
"knowledgeBase": [
{
"type": "指南",
"title": "流量变现 "
},
{
"type": "指南",
"title": "联运服务"
},
{
"type": "指南",
"title": "付费服务"
},
{
"type": "指南",
"title": "结算指南"
}
]
}
]
},
{
"title": "更多",
"brief": "",
"materials": [
{
"subtitle": "",
"knowledgeBase": [
{
"type": "指南",
"title": "常见问题"
},
{
"type": "指南",
"title": "版本说明"
}
]
}
]
}
]