鸿蒙原生应用随机诗词
想了解更多关于开源的内容,请访问:
51CTO 鸿蒙开发者社区
https://ost.51cto.com
运行环境
DAYU200:4.0.10.16
SDK:4.0.10.15
IDE:4.0.600
一、创建应用
点击File->new File->Create Progect。
选择模版:
【OpenHarmony】Empty Ability:
填写项目名,shici,应用包名com.nut.shici,应用存储位置XXX(不要有中文,特殊字符,空格)。
Compile SDK10,Model :Stage。
Device Type 默认就可以。
node,建议16.20.1。
完成以上配置以后点击Finish。
选择在新窗口打开,等待依赖加载完毕。如图所示。
如果大家加载依赖报错的话,检查自己的网络。
二、运行HelloWord
给开发板供电,并连接开发板到电脑,如图所示:
签名:
签名的步骤:
点击File->Project struct。
选择第三项Signing Configs。
这里我们只勾选Automatically generate就可以,不用勾选Suppot HarmonyOS,因为我们运行的是开发板。
点击Apply或者ok就可以。
现在点击按钮运行项目。
控制台打印信息:
$ 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
证明项目已经成功运行在开发板上。
三、修改图标和名称
修改应用图标和名称:
目录在AppScope/app.json5。
{ "app": { "bundleName": "com.nut.shici", "vendor": "example", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:app_icon", "label": "$string:app_name" } }
修改完毕之后如图所示:
修改成功之后,如图所示:
打开方式,在设置-应用管理一栏。
修改桌面图标和名称
修改src/main/module.json5中如图所示的label和icon。
我们修改label的时候,修改中文目录下的就可以。
{ "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" ] } ] } ] } }
修改中文目录下的。
效果如图所示:
四、添加相关权限
因为需要用到网络数据,所以添加initent权限。
在src/main/module.json5中modele中添加配置,然后async就可以。
"requestPermissions": [{ "name": "ohos.permission.INTERNET" }],
五、定义数据模型
在ets目录下新建model文件夹。
新建TS File。
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" }
六、加载网络数据
接口说明
准备好数据,
接口
接口地址: https://v2.alapi.cn/api/shici
请求方法: [ “GET”, “POST” ]
请求参数:
名称 |
必填 |
类型 |
描述 |
示例 |
token |
true |
string |
请求token,用户中心获取。 |
用户中心获取token |
format |
false |
string |
返回格式,支持json,text |
json |
type |
string |
诗词类型 |
all |
- type 参数值说明
- all 所有类型
- shuqing抒情
- siji四季
- shanshui山水
- tianqi天气
- renwu人物
- shenghuo生活
- jieri节日
- dongwu动物
- zhiwu植物
返回参数:
名称 |
描述 |
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请求
导入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错误码,请检查网络。
七、UI
数据获取到之后,我们就剩在页面上显示了。
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) } }
九、总结
本文我们学习了基础组件的使用,网络请求,以及状态管理。
十、FAQ
2300006 域名解析失败
错误信息
Couldn’t resolve host name。
错误描述
服务器的域名无法解析。
可能原因
- 传入的服务器的URL不正确。
- 网络不通畅。
处理步骤
- 请检查输入的服务器的URL是否合理。
- 请检查网络连接情况
想了解更多关于开源的内容,请访问:
51CTO 鸿蒙开发者社区
https://ost.51cto.com
以上是鸿蒙原生应用随机诗词的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

根据多家媒体报道,华为于4月30日下午内部发布人事调整文件,宣布余承东将卸任华为终端BGCEO一职。余承东将仍保留终端BG董事长职位。原华为终端BG、首席运营官何刚将接任华为终端BGCEO职位。据透露,除了上述个人事变动调整外,该文件并无更多信息。关于这次重大人事变动的背景和余承东卸任终端BGCEO之后新的业务重心,也未有进一步的说明。有消息源表示,此次调整属于常规的业务架构调整,可让余承东有更多精力为消费者打造精品。余承东出生于1969年,本科毕业于西北工业大学自动控制系,硕士毕业于清华大学,

AI大模型已经成为当下科技圈炙手可热的话题,越来越多的企业开始布局大模型能力,越来越多的产品开始强调AI。但是从目前的体验来看,市场上涌入的大部分AI产品,往往只是在应用层面简单地集成了大模型应用,并未从底层实现系统性的AI技术变革。在HDC2024上,伴随着HarmonyOSNEXT面向开发者和先锋用户开放Beta,华为向业界展示了什么是真正的“原生智能”——拥有系统级AI能力,AI不再仅仅是手机的附加品,而是与操作系统深度融合,成为系统级的核心能力。据介绍,通过软硬芯云整合,HarmonyO

6月21日,华为开发者大会2024(HDC2024)再聚东莞松山湖。本届大会上,最令人关注的莫过于HarmonyOSNEXT正式面向开发者和先锋用户启动Beta,并全方位展示了HarmonyOSNEXT全场景、原生智能和原生安全三大“王炸”级创新特性。HarmonyOSNEXT原生智能:开启全新AI时代放弃安卓框架之后,HarmonyOSNEXT成为真正独立于安卓、iOS的操作系统,堪称是一场史无前例的脱胎换骨。在其众多新特性中,原生智能无疑是最能带给用户直观感受和体验升级的新特性

本文将第二届OpenHarmony技术大会上展示的《在OpenHarmony本地部署大语言模型》成果开源,开源地址:https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/thirdparty/InferLLM/docs/hap_integrate.md。实现思路和步骤移植轻量级LLM模型推理框架InferLLM到OpenHarmony标准系统,编译出能在OpenHarmony运行的二进制产物。InferLLM是一个简单高效的L

4月25日消息,最近,华为推出了HarmonyOS4.2Beta的更新推送,为用户带来了诸多全新功能,其中最引人瞩目的当属控车功能的加入。据用户反馈,华为WATCH4在此次更新中,新增了对问界M9和智界S7两款车型的NFC车钥匙与蓝牙车钥匙的支持。这意味着,用户现在可以直接通过手表来解锁和启动他们的汽车,极大地提升了使用的便捷性。同时,手表版的AITO应用也得到了升级,为问界车型的用户提供了语音控车的能力,包括开关后备箱、解锁和落锁等操作。此外,还特别为问界M9定制了尊享表盘,以满足用户的个性化

今天下午,鸿蒙智行正式迎来了新品牌与新车。 8月6日,华为举行鸿蒙智行享界S9及华为全场景新品发布会,带来了全景智慧旗舰轿车享界S9、问界新M7Pro和华为novaFlip、MatePadPro12.2英寸、全新MatePadAir、华为毕升激光打印机X1系列、FreeBuds6i、WATCHFIT3和智慧屏S5Pro等多款全场景智慧新品,从智慧出行、智慧办公到智能穿戴,华为全场景智慧生态持续构建,为消费者带来万物互联的智慧体验。鸿蒙智行:深度赋能,推动智能汽车产业升级华为联合中国汽车产业伙伴,为

华为AI云增强功能是一种通过人工智能技术优化照片画质的实用功能。那么华为Pura70如何使用AI云增强功能呢?有需要的小伙伴一起来下文看看吧。一、升级最新版本:1、下载并安装最新版本:鸿蒙OS4.0.0.126。2、等待安装完成,即可使用云增强新功能。二、开启云增强服务:1、打开相册,点击右上角四个点,点击设置。2、开启AI云增强功能。三、使用云增强功能:1、在相册中找到需要AI云增强的照片,点击右上角的魔棒图标。2、点击同意。3、完成AI云增强后,相册就会自动多出一张照片。在右下角即可查看到魔

华为鸿蒙系统受到了不少用户的关注,该系统适用于大部分华为手机,支持ota升级,但是有许多用户还不知道如何升级,下面小编就为大家带来了华为鸿蒙系统更新升级方法介绍。华为鸿蒙系统怎么升级1、首先打开华为手机,点击。2、然后在设置中找到。3、会出现软件更新的提示,点击即可。4、然后会跳转到鸿蒙系统更新入口,如果没有更新界面,点击进行查看。5、更新完成后,返回设置界面,点击关于手机就可以看到鸿蒙系统的显示了。鸿蒙系统支持的手机型号支持华为Mate40、Mate40Pro、Mate40Pro+、Mate4
