Um mehr über Open Source zu erfahren, besuchen Sie bitte:
51CTO Hongmeng Developer Community
https://ost.51cto.com
DAYU200:4.0.10.16
SDK: 4.0.10.15
IDE: 4.0.600
Klicken Sie auf Datei->Neue Datei->Projekt erstellen.
Wählen Sie eine Vorlage:
【OpenHarmony】Leere Fähigkeit:
Geben Sie den Projektnamen, shici, den Namen des Anwendungspakets com.nut.shici und den Speicherort der Anwendung XXX ein (kein Chinesisch, Sonderzeichen oder Leerzeichen).
Kompilieren Sie SDK10, Modell: Stage.
Gerätetyp ist standardmäßig in Ordnung.
Knoten, 16.20.1 empfohlen.
Klicken Sie auf Fertig stellen, nachdem Sie die obige Konfiguration abgeschlossen haben.
Öffnen Sie in einem neuen Fenster und warten Sie, bis die Abhängigkeiten geladen sind. wie das Bild zeigt.
Wenn beim Laden von Abhängigkeiten eine Fehlermeldung angezeigt wird, überprüfen Sie Ihr Netzwerk.
Versorgen Sie das Entwicklungsboard mit Strom und schließen Sie das Entwicklungsboard an den Computer an, wie im Bild gezeigt:
Signatur:
Schritte zum Unterschreiben:
Klicken Sie auf Datei->Projektstruktur.
Wählen Sie den dritten Punkt Signierungskonfigurationen aus.
Hier müssen wir nur „Automatisch generieren“ aktivieren und es ist nicht erforderlich, „HarmonyOS unterstützen“ zu aktivieren, da wir ein Entwicklungsboard betreiben.
Klicken Sie auf „Übernehmen“ oder „OK“.
Klicken Sie nun auf die Schaltfläche, um das Projekt auszuführen.
Informationen zum Konsolendruck:
$ hdc uninstall com.nut.shici $ hdc shell mkdir data/local/tmp/a1bdb2dbe1724c67a1106c360a3f1d35 $ hdc file send "/Users/jianguo/Desktop/teaching/ohcode/shici/entry/build/default/outputs/default/entry-default-signed.hap" "data/local/tmp/a1bdb2dbe1724c67a1106c360a3f1d35" $ hdc shell bm install -p data/local/tmp/a1bdb2dbe1724c67a1106c360a3f1d35 $ hdc shell rm -rf data/local/tmp/a1bdb2dbe1724c67a1106c360a3f1d35 $ hdc shell aa start -a EntryAbility -b com.nut.shici
Beweisen Sie, dass das Projekt auf dem Entwicklungsboard erfolgreich durchgeführt wurde.
App-Symbol und Namen ändern:
Das Verzeichnis befindet sich in AppScope/app.json5.
{ "app": { "bundleName": "com.nut.shici", "vendor": "example", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:app_icon", "label": "$string:app_name" } }
Wie im Bild nach der Änderung gezeigt:
Nachdem die Änderung erfolgreich war, wie im Bild gezeigt:
Öffnen Sie die Methode, gehen Sie zu Einstellungen-Anwendungsverwaltung.
Ändern Sie die Beschriftung und das Symbol in src/main/module.json5 wie im Bild gezeigt.
Wenn wir das Etikett ändern, müssen wir es nur im chinesischen Verzeichnis ändern.
{ "module": { "name": "entry", "type": "entry", "description": "$string:module_desc", "mainElement": "EntryAbility", "deviceTypes": [ "default", "tablet" ], "deliveryWithInstall": true, "installationFree": false, "pages": "$profile:main_pages", "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "description": "$string:EntryAbility_desc", "icon": "$media:icon", "label": "$string:EntryAbility_label", "startWindowIcon": "$media:startIcon", "startWindowBackground": "$color:start_window_background", "exported": true, "skills": [ { "entities": [ "entity.system.home" ], "actions": [ "action.system.home" ] } ] } ] } }
Ändern Sie das chinesische Verzeichnis.
Der Effekt ist wie im Bild dargestellt:
Da Netzwerkdaten erforderlich sind, wird die Absichtserlaubnis hinzugefügt.
Fügen Sie die Konfiguration zum Modell in src/main/module.json5 hinzu und verwenden Sie dann async.
"requestPermissions": [{ "name": "ohos.permission.INTERNET" }],
Erstellen Sie einen neuen Modellordner im ets-Verzeichnis.
Erstellen Sie eine neue TS-Datei.
export class ShiciModel { code: number = 0 message: string = "" data: ShiCi = new ShiCi() } export class ShiCi { content: string = "" author: string = "" origin: string = "" category: string = "" c1: string = "" c2: string = "" c3: string = "" // "content": "微雨过,小荷翻。榴花开欲然。", // "author": "苏轼", // "origin": "阮郎归·初夏", // "category": "古诗文-植物-荷花", // "c1": "gushiwen", // "c2": "zhiwu", // "c3": "hehua" }
Bereiten Sie Ihre Daten vor,
Schnittstelle
Schnittstellenadresse: https://v2.alapi.cn/api/shici
Anfragemethode: [ „GET“, „POST“ ]
Parameter anfordern:
Name |
Erforderlich |
Typ |
Beschreibung |
Beispiel |
Token |
wahr |
Zeichenfolge |
Token anfordern und im User Center erhalten. |
Benutzercenter, um Token zu erhalten |
Format |
falsch |
Zeichenfolge |
返回格式,支持json,text |
json |
type |
string |
诗词类型 |
all |
返回参数:
名称 |
描述 |
content |
诗词内容 |
author |
作者 |
origin |
诗词题 |
测试工具:Postamn。
{ "code": 200, "msg": "success", "data": { "content": "地冷叶先尽,谷寒云不行。", "author": "李白", "origin": "冬日归旧山", "category": "古诗文-植物-叶子", "c1": "gushiwen", "c2": "zhiwu", "c3": "yezi" }, "time": 1704770459, "usage": 0, "log_id": "603184784204148736" }
测试如图所示:
导入http模块:
import http from '@ohos.net.http'; import { BusinessError } from '@ohos.base';
创建createHttp:
let httpRequest = http.createHttp();
填写HTTP地址:
httpRequest.request(// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 "https://v2.alapi.cn/api/shici", { method: http.RequestMethod.GET, // 可选,默认为http.RequestMethod.GET // // 开发者根据自身业务需要添加header字段 header: [{ 'Content-Type': 'application/json' }], // 当使用POST请求时此字段用于传递内容 extraData: { "token": "自己的token", "type": "all", "format": "json" }, }, (err: BusinessError, data: http.HttpResponse) => { } );
对网络数据的处理:
if (!err) { // data.result为HTTP响应内容,可根据业务需要进行解析 console.info('Result:' + JSON.stringify(data.result)); console.info('code:' + JSON.stringify(data.responseCode)); // data.header为HTTP响应头,可根据业务需要进行解析 console.info('header:' + JSON.stringify(data.header)); console.info('cookies:' + JSON.stringify(data.cookies)); // 8+ // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); } else { this.message = JSON.stringify(err) console.error('error:' + JSON.stringify(err)); // 取消订阅HTTP响应头事件 httpRequest.off('headersReceive'); // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); }
完成以上配置以后。
在应用程序里测试网络请求。
build() { Column() { Button("测试网络请求").onClick(() => { this.httpData() }) }.width("100%").height("100%").justifyContent(FlexAlign.Center) } }
如图所示:
测试成功。
如果2300006错误码,请检查网络。
数据获取到之后,我们就剩在页面上显示了。
U I布局如图所示。
build() { Column() { Text(this.shici.origin).fontSize(30).fontWeight(800) Text(this.shici.author).fontSize(20).fontWeight(300).fontColor(Color.Orange) Text(this.shici.category).fontSize(20).fontWeight(300).fontColor(Color.Green) }.width("100%").height("100%").justifyContent(FlexAlign.Center) }
import http from '@ohos.net.http'; import { BusinessError } from '@ohos.base'; import promptAction from '@ohos.promptAction'; import { ShiCi, ShiciModel } from '../../model/ShiCiModel'; class shiciType { title: string = "" desc: string = "" } @Entry @Component struct Index { @State shici: ShiCi = new ShiCi() @State typeList: Array = [ { title: "抒情", desc: "shuqing" }, { title: "四季", desc: "siji" }, { title: "山水", desc: "shanshui" } , { title: "天气", desc: "tianqi" } ] aboutToAppear() { this.httpData("all") } httpData(type: string) { // 3.每一个httpRequest对应一个HTTP请求任务,不可复用 let httpRequest = http.createHttp(); //4. httpRequest.request(// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 "https://v2.alapi.cn/api/shici", { method: http.RequestMethod.GET, // 可选,默认为http.RequestMethod.GET // // 开发者根据自身业务需要添加header字段 header: [{ 'Content-Type': 'application/json' }], // 当使用POST请求时此字段用于传递内容 extraData: { "token": "你的token", "type": type, "format": "json" }, }, (err: BusinessError, data: http.HttpResponse) => { if (!err) { // data.result为HTTP响应内容,可根据业务需要进行解析 console.info('Result:' + JSON.stringify(data.result)); let ShiciModel: ShiciModel = JSON.parse(data.result.toString()) this.shici = ShiciModel.data console.info('code:' + JSON.stringify(data.responseCode)); // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); } else { console.error('error:' + JSON.stringify(err)); // 取消订阅HTTP响应头事件 httpRequest.off('headersReceive'); // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); } } ); } build() { Column() { Row() { ForEach(this.typeList, (item: shiciType) => { Text(item.title).fontSize(30).margin(20) .onClick(() => { this.httpData(item.desc) }) }) } Button( "抒情" ).onClick(() => { this.httpData("shuqing") }) Button( "四季" ).onClick(() => { this.httpData("siji") }) Text(this.shici.origin).fontSize(30).fontWeight(800) Text(this.shici.author).fontSize(20).fontWeight(300).fontColor(Color.Orange) Text(this.shici.category).fontSize(20).fontWeight(300).fontColor(Color.Green) }.width("100%").height("100%").justifyContent(FlexAlign.Center) } }
本文我们学习了基础组件的使用,网络请求,以及状态管理。
Couldn’t resolve host name。
服务器的域名无法解析。
想了解更多关于开源的内容,请访问:
51CTO 鸿蒙开发者社区
https://ost.51cto.com
Das obige ist der detaillierte Inhalt vonHongmeng native Anwendung zufälliger Poesie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!