关键词:
今天我们将做一个OpenHarmony趣味应用——OpenHarmony藏头诗应用,是通过AI接口来做。通过调用指定的AI接口来做,接口会返回藏头诗或者继续完成诗的后面几句。
我要实现的功能主要有:
- 生成藏头诗,
- 生成整首诗,
你能学到的有:
- 网络请求
- 可滚动组件
- 状态管理
- 常用组件
- 常用属性
- 修改应用名称和图标
- 在Config.json添加权限等
用到的接口:
接口:
https://py.myie9.com/hidepoem/坚果
请求方式:
Get
apipost请求测试
接口:
https://py.myie9.com/xuxietest/汗滴禾下土
apipost请求测试:
如何创建应用在这里不做解释。
首先预览一下应用
注意点:
允许https需要添加下面的配置
"deviceConfig":
"default":
"network":
"cleartextTraffic": true
,
使用网络请求在config.json添加权限:
"reqPermissions": [
"name": "ohos.permission.INTERNET"
],
完整代码:
import http from '@ohos.net.http';
import RequestMethod from '@ohos.net.http';
import ResponseCode from '@ohos.net.http';
@Entry
@Component
struct Index
@State tibetanContent: string = "坚果的小跟班";
@State tibetanInput: string = "跟着坚果学鸿蒙";
@State wholeContent: string = "";
@State wholeInput: string = "跟着坚果学鸿蒙";
private scroller: Scroller = new Scroller()
onCancel()
console.info('关闭')
build()
Scroll(this.scroller)
Column( space: 10 )
Text($r("app.string.title"))
.fontSize(26)
.fontWeight(FontWeight.Bold)
.align(Alignment.Start)
.margin( top: 20 )
TextInput( placeholder: '请输入要生成的内容', )
.fontSize(36)
.enterKeyType(EnterKeyType.Go)
.onChange((value) =>
this.tibetanInput = value;
)
.height(80)
.margin(
top: 40,
left: 16,
right: 16
)
Button("生成藏头诗").backgroundColor(Color.Pink)
.onClick(() =>
this.TibetanRequest();
)
Text(this.tibetanContent).fontSize(26).fontColor(Color.Orange)
TextInput( placeholder: '请输入要生成的内容', )
.fontSize(36)
.enterKeyType(EnterKeyType.Go)
.onChange((value) =>
this.wholeInput = value;
)
.height(80)
.margin(
left: 16,
right: 16
)
Button("生成整首诗").backgroundColor(Color.Green)
.onClick(() =>
this.wholePoemRequest();
)
Text(this.wholeContent).fontSize(24).fontColor(Color.Orange)
.padding(10)
//藏头诗接口
private TibetanRequest()
let httpRequest = http.createHttp();
httpRequest.request(
"https://py.myie9.com/hidepoem/" + this.tibetanInput,
method: RequestMethod.RequestMethod.GET,
readTimeout: 15000,
connectTimeout: 15000,
,
(error, data) =>
if (error)
console.log("error code: " + error.code + ", msg: " + error.message)
else
let code = data.responseCode
if (ResponseCode.ResponseCode.OK == code)
this.tibetanContent = data.result.toString();
let header = JSON.stringify(data.header);
console.log("result: " + this.tibetanContent);
console.log("header: " + header);
else
console.log("response code: " + code);
);
//整首诗接口
private wholePoemRequest()
let httpRequest = http.createHttp();
httpRequest.request(
"https://py.myie9.com/xuxietest/" + this.wholeInput,
method: RequestMethod.RequestMethod.GET,
readTimeout: 15000,
connectTimeout: 15000,
,
(error, data) =>
if (error)
console.log("error code: " + error.code + ", msg: " + error.message)
else
let code = data.responseCode
if (ResponseCode.ResponseCode.OK == code)
this.wholeContent = data.result.toString();
let header = JSON.stringify(data.header);
console.log("result: " + this.wholeContent);
console.log("header: " + header);
else
console.log("response code: " + code);
);
发起网络请求
使用 @ohos.net.http
模块发起网络请求分为以下步骤:
引入http模块
import http from '@ohos.net.http';
创建一个httpRequest
let httpRequest = http.createHttp();
发起http请求
httpRequest
提供了两种 request()
方法进行网络请求,分别是无 RequestOptions
参数的请求和有 RequestOptions
参数的请求。分别介绍如下:
-
无
RequestOptions
参数请求//藏头诗接口 private TibetanRequest() let httpRequest = http.createHttp(); httpRequest.request( "https://py.myie9.com/hidepoem/" + this.tibetanInput, method: RequestMethod.RequestMethod.GET, readTimeout: 15000, connectTimeout: 15000, , (error, data) => if (error) console.log("error code: " + error.code + ", msg: " + error.message) else let code = data.responseCode if (ResponseCode.ResponseCode.OK == code) this.tibetanContent = data.result.toString(); let header = JSON.stringify(data.header); console.log("result: " + this.tibetanContent); console.log("header: " + header); else console.log("response code: " + code); );
request()
方法默认采用get
方式请求。
上述代码,重点是通过调用HTTP的AI接口,来获取生成接口返回的诗的内容,并显示在应用界面上。
修改应用描述信息
默认的应用描述信息,集中在config.json文件中。
修改string.json内容如下:
"srcLanguage": "ets",
"srcPath": "MainAbility",
"icon": "$media:icon", //应用图标
"description": "$string:desc",
"label": "$string:title", //应用名称
"type": "page",
"visible": true,
"launchType": "standard"
这么有趣的应用就这样完成了,比起js开发方式,eTS是不是更为简单呢。
中秋之际献上中秋快乐藏头诗(代码片段)
【中秋快乐】藏头诗想法诞生项目结构QuickStartdatatrainonpoems【诗歌训练】composepoems【作诗】想法诞生个人搞Java的,但是知道人工智能的强大,突然有想法,认为肯定能用Python训练做出一首古诗,仓库里搜了下,... 查看详情
中秋之际献上中秋快乐藏头诗(代码片段)
【中秋快乐】藏头诗想法诞生项目结构QuickStartdatatrainonpoems【诗歌训练】composepoems【作诗】想法诞生个人搞Java的,但是知道人工智能的强大,突然有想法,认为肯定能用Python训练做出一首古诗,仓库里搜了下,... 查看详情
深度学习100例——使用pytorch实现lstm自动ai作诗(藏头诗和首句续写)|第6例
前言大家好,我是阿光。本专栏整理了《深度学习100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。正在更新中~✨ 查看详情
基于lstm的诗词生成(代码片段)
...录前言一、数据集介绍二、实验代码1、随机诗词生成2、藏头诗生成三、实验结果1.随机诗词生成结果2.藏头诗生成结果总结前言本文的主要内容是基于LSTM的诗词生成,文中包括数据集的介绍、实验代码以及运行结果等,... 查看详情
openharmony数据转码应用开发实战(下)(代码片段)
背景对于刚入门OpenHarmony开发的小伙伴来说,如果有一个合适的实战项目来练手,对自身的技术能力提升是非常有帮助的,本文将以一个小项目——数据转码应用,来讲解应用开发全流程。在《OpenHarmony数据转码应用开发实战(... 查看详情
#打卡不停更#openharmony-应用开发入门指南(代码片段)
作者:余香鑫前言了解OpenHarmony能够开发一些简单的OpenHarmony应用一、了解OpenHarmonyOpenHarmony是由开放原子开源基金会(OpenAtomFoundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统... 查看详情
openharmony应用开发实例(代码片段)
开发环境:开发系统:Ubuntu20.04开发板:Pegasus物联网开发板MCU:Hi3861OpenHarmony版本:3.0.1-LTS4.1新建工程及配置1.新建工程及源码新建目录$mkdirhello在applications/sample/myapp中新建src目录以及myapp.c文件,代码如下... 查看详情
#打卡不停更#openharmony数据转码应用开发实战(上)(代码片段)
背景OpenHarmony的应用开发支持C++、JS、eTS,从已有版本的演进路线来看,eTS是未来重点的技术路线。对于刚入门OpenHarmony应用开发的小伙伴来说,eTS可能比较陌生,如果有一个合适的实战项目来练手,那么对技术能力提升是非常有... 查看详情
#盲盒+码##跟着小白一起学鸿蒙#如何编译openharmony自带app(代码片段)
如何编译OpenHarmony自带APP作者:王石概述OpenHarmony的主干代码是开源社区的重要学习资源,对于想进行应用开发和熟悉OpenHarmony能力的同学主干代码是非常重要的资源,在主干代码的applications目录里聚集了很多原生的应用实现,那... 查看详情
openharmony应用集成agc认证服务实现登录(代码片段)
11月4日在HDC大会(华为开发者大会2022)推出一套覆盖应用设计、开发、测试、上架、运营全生命周期的七大鸿蒙开发套件“金字塔”,本次分享内容围绕处于“塔尖”位置的一站式鸿蒙应用及原子化服务运营平台AGC(AppGalleryConnect,... 查看详情
openharmony如何拨打电话(代码片段)
OpenHarmony电话服务开发电话服务系统提供了一系列的API用于拨打电话、获取无线蜂窝网络和SIM卡相关信息。应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息,具体可参考获取当前... 查看详情
openharmony如何拨打电话(代码片段)
OpenHarmony电话服务开发电话服务系统提供了一系列的API用于拨打电话、获取无线蜂窝网络和SIM卡相关信息。应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息,具体可参考获取当前... 查看详情
#打卡不停更#-openharmony/docs开发入门(代码片段)
作者:朱子道杨成前言不管是作为软件开发的爱好者还是已经从事软件开发这个行业的从业者,对于接触一种全新的系统OpenHarmony。学习OpenHarmony,需要清楚OpenHarmony这个系统是什么,能干什么,今日分享从设备开发和应用开发两... 查看详情
openharmony音频流管理开发(代码片段)
1、OpenHarmony音频流管理开发简介 AudioStreamManager提供了音频流管理的方法。开发者可以通过本博文了解应用如何通过AudioStreamManager管理音频流。 2、OpenHarmony音频流管理运作机制 该模块提供了音频流管理调... 查看详情
openharmony集成ocr三方库实现文字提取(代码片段)
作者:郭岳峰一、简介Tesseract(Apache2.0License)是一个可以进行图像OCR识别的C++库,可以跨平台运行。本样例基于Tesseract库进行适配,使其可以运行在OpenAtomOpenHarmony(以下简称“OpenHarmony”)上,并新增N-API接口供上层应用调用,这... 查看详情
openharmony应用开发实例(代码片段)
开发环境:开发系统:Ubuntu20.04开发板:Pegasus物联网开发板MCU:Hi3861OpenHarmony版本:3.0.1-LTS4.1新建工程及配置1.新建工程及源码新建目录$mkdirhello在applications/sample/myapp中新建src目录以及myapp.c文件,代码如下... 查看详情
openharmony音量管理开发(代码片段)
1、OpenHarmony音量管理开发简介 AudioVolumeManager提供了音量管理的方法。开发者可以通过本博文了解应用如何通过AudioVolumeManager获取指定流音量信息、监听铃声模式变化、设置麦克风静音等。 2、OpenHarmony音量管理运行机... 查看详情
最新openharmony系统一二级目录整理(代码片段)
最新OpenHarmony系统一二级目录整理坚果:润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS应用开发、跨平台Flutter开发、熟悉服务卡片开发、小程序开发、GO的相关开发。开源项目gin-vue-admin成员之一,先后在C... 查看详情