当前位置:

首页 > 软件教程 > 鸿蒙原生应用随机生成诗词

鸿蒙原生应用随机生成诗词

Compressor macOS版
Compressor macOS版

Compressor 是 Apple 面向 Mac 推出的专业媒体转码与交付工具,可与 Final Cut Pro、Motion 协同工作。它支持批量任务、自定义编码预置、HDR 与广色域处理、字幕、空间视频、专业媒体格式及多台 Mac 分

立即下载
¥328
Mac 2026-10-13
视频编辑 动画 视频剪辑 影视后期

想了解更多关于开源的内容,请访问:51CTO鸿蒙开发者社区https://ost.51cto.com运行环境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、创建应用点击File->newFile->CreateProgect。选择模版:【OpenHarmony】EmptyAbility:填写项目名,shici,应用包名com.nut.shici,应用存储位置XXX(不要有中文,特殊字符,空格)。CompileSDK10,Model:Stage。Device

本文目录

    鸿蒙原生应用随机诗词

    想了解更多关于开源的内容,请访问:

    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

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程 file
    相关文章 更多
    php .htaccess com,PHP .htaccess中添加自动加载的PHP文件
    php .htaccess com,PHP .htaccess中添加自动加载的PHP文件

    在网站根目录的.htaccess文件中添加php_valueauto_prepend_file指令,指定一个PHP文件路径,即可让所有PHP页面解析时自动加载该文件,实现全局公共代码自动引入,避免手动重复include,提高开发效率与代码复用性,统一管理页头、页脚等公共部分,维护方便。

    php 查找php配置文件php.ini所在路径的二种方法
    php 查找php配置文件php.ini所在路径的二种方法

    定位PHP配置文件php.ini的路径,可通过两种可靠方法:一是在Web服务器中新建PHP文件,写入phpinfo()函数并访问,查看LoadedConfigurationFile项;二是在命令行运行php--ini命令,直接显示实际加载的配置文件路径。这两种方法均能准确获取位置,避免误用其他版本。

    修改solaris的默认语言
    修改solaris的默认语言

    使用Solaris中文版安装后,不少朋友会遇到一个头疼的问题——通过SSH远程连接时,终端里显示的中文全是乱码,根本没法正常工作。其实问题的根源在于系统的默认语言设置,把locale切回英文模式就能搞定。下面直接上操作,干净利落。 先把配置文件的写权限打开,因为默认是只读的: #chmod u+w

    php配置文件php.ini
    php配置文件php.ini

    1. 新建php文件,写入如下代码 首先,创建一个新的PHP文件,把下面这段代码放进去:

    电脑睡眠唤醒问题怎么解决
    电脑睡眠唤醒问题怎么解决

    在昏暗的夜晚,一个人躺在房间的床上,静静的思考着什么。突然间电脑屏幕亮了!什么鬼!到底是谁唤醒了我的电脑!!!本文将介绍如何寻找唤醒电脑的真凶。调查是谁唤醒了电脑使用命令查看上一次是谁唤醒了电脑。代码语言:javascript代码运行次数:0运行复制powercfg-lastwake从图中可知上一次唤醒我计算机的是英特尔®以太网连接I219-V82186。查看还有谁可以唤醒电脑使用命令查看所有可以唤醒电脑的设备。代码语言:javascript代码运行次数:0运行复制powercfg-devic

    如何使用Java中的File函数进行文件操作
    如何使用Java中的File函数进行文件操作

    在Java中,File类是一个非常常用的类,它提供了一系列的方法可以帮助我们进行文件操作,如文件创建、删除、重命名等。本文将介绍如何使用Java中的File函数进行文件操作。一、File类的常用方法在使用File类时,我们可以使用以下常用方法:创建文件或目录:File.createFile()和File.mkdirs()判断文件或目录是否存在:File.ex

    如何解决com surrogate停止工作的问题?分享解决方法
    如何解决com surrogate停止工作的问题?分享解决方法

    在使用电脑的过程中,可能会遇到comsurrogate已停止工作的情况,这个问题要如何解决呢?不用太过担心,下面小编就给大家带来电脑出现comsurrogate已停止工作的详细解决方法。方法如下:1、右击桌面上的此电脑图标,选择属性--高级系统设置。2、在打开的系统属性页面中,切换至“高级”项,点击性能下面的“设置”按钮。3、在打开的性能选项页面中,切换至“数据执行保护”选项。选择“为除下列选定程序之外的所有程序和服务启用

    使用PHP将整个文件内容加载到一个字符串中
    使用PHP将整个文件内容加载到一个字符串中

    这篇文章将为大家详细讲解有关PHP将整个文件读入一个字符串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP将整个文件读入一个字符串引言在某些情况下,您可能需要将整个文件读入php字符串变量中。这可以通过使用各种内置函数来实现,包括file_get_contents()和file()。file_get_contents()函数file_get_contents()函数是最简单的读取整个文件的方法之一。它将整个文件的内容读入一个字符串变量,并返回该变量。语法:file_

    PHP显示 GD 图像到浏览器或保存到文件
    PHP显示 GD 图像到浏览器或保存到文件

    这篇文章将为大家详细讲解有关PHP将GD图像输出到浏览器或文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP将GD图像输出到浏览器或文件引言phpGD库为处理图像提供了强大的功能,允许您创建、编辑和输出图像。可以将图像输出到浏览器或文件,以进行显示或进一步处理。输出到浏览器要将图像输出到浏览器,请使用以下步骤:创建图像资源:使用imagecreate()函数创建图像资源。加载图像数据:使用imagepng()、imagejpeg()或imagegif()函数加载图

    如何使用Java中的File.delete()方法删除文件或目录?
    如何使用Java中的File.delete()方法删除文件或目录?

    如何使用Java中的File.delete()方法删除文件或目录?概述:在Java中,我们可以使用File类的delete()方法来删除文件或目录。该方法用于删除指定的文件或目录。但是需要注意的是,该方法只能删除空目录或者没有被其他程序打开的文件。如果文件或目录删除失败,可以通过捕获IOException异常来查找具体原因。步骤一:导入相关的包首先,我们需要

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

    即将离开本站
    您即将前往第三方网站,请确认是否继续?