0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony趣味应用 OpenHarmony藏头诗应用

ArkUI详解 2022-07-13 09:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天我们将做一个OpenHarmony趣味应用——OpenHarmony藏头诗应用,是通过AI接口来做。通过调用指定的AI接口来做,接口会返回藏头诗或者继续完成诗的后面几句。

我要实现的功能主要有:

生成藏头诗,

生成整首诗,

你能学到的有:

网络请求

可滚动组件

状态管理

常用组件

常用属性

修改应用名称和图标

在Config.json添加权限等

用到的接口:

接口:

https://py.myie9.com/hidepoem/坚果

请求方式:

Get

apipost请求测试

image-20220711081818157

接口:

https://py.myie9.com/xuxietest/汗滴禾下土

apipost请求测试:

image-20220711082102057

如何创建应用在这里不做解释。

首先预览一下应用

gif1

注意点:

允许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 参数请求

  1. //藏头诗接口
    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文件中。

image-20220711111409744

修改string.json内容如下:

"srcLanguage": "ets",

"srcPath": "MainAbility",

"icon": "$media:icon", //应用图标

"description": "$string:desc",

"label": "$string:title", //应用名称

"type": "page",

"visible": true,

"launchType": "standard"

这么有趣的应用就这样完成了,比起js开发方式,eTS是不是更为简单呢。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35563
  • OpenHarmony
    +关注

    关注

    31

    文章

    3926

    浏览量

    20713
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    OpenHarmony年度课题管理办法

    OpenHarmony年度课题管理办法V1.0 第一章 总则 第一条 宗旨 围绕终端操作系统所面临的技术挑战,OpenHarmony项目群技术指导委员会(TSC)联合产学研各界,以
    的头像 发表于 11-12 16:55 426次阅读

    两款搭载KaihongOS的开鸿开发板被评为“OpenHarmony 明星开发板”

    OpenHarmony
    深开鸿
    发布于 :2025年09月11日 10:10:02

    2025 OpenHarmony TSC年中技术与生态研讨会圆满举办

    2025 OpenHarmony TSC 年中技术与生态研讨会 圆满举办 8月1日,2025 OpenHarmony TSC年中技术与生态研讨会于中国上海顺利召开。 本次会议由OpenHarmony
    的头像 发表于 08-07 12:24 1386次阅读
    2025 <b class='flag-5'>OpenHarmony</b> TSC年中技术与生态研讨会圆满举办

    OpenHarmony2025年度竞赛训练营重磅开启

      OpenHarmony2025年度竞赛训练营       活动介绍 OpenHarmony竞赛训练营 旨在引导高校学生进行OpenHarmony产学研用,培养更多应用型人才和产业需求有效链接
    的头像 发表于 07-16 11:51 713次阅读

    OpenHarmony年度技术课题评选通知

      OpenHarmony年度技术课题评选通知 活动简介 自技术课题发布以来,各高校OpenHarmony技术俱乐部积极申报、揭榜技术课题,并踊跃参与产学研交流,取得了显著的研究进展。为了持续牵引
    的头像 发表于 07-14 18:31 619次阅读

    桃芯科技获得OpenHarmony生态产品兼容性证书

    近日,由INGCHIPS自主研发的模组/开发板DB870CC1A顺利通过OpenHarmony 5.0.2 Release版本兼容性测评,并获得OpenHarmony生态产品兼容性证书!
    的头像 发表于 06-25 14:30 860次阅读

    四川大学OpenHarmony技术俱乐部正式揭牌成立

    2025年6月9日下午,由OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会和四川大学计算机学院共同举办的“四川大学OpenHarmony技术俱乐部
    的头像 发表于 06-16 16:20 1217次阅读
    四川大学<b class='flag-5'>OpenHarmony</b>技术俱乐部正式揭牌成立

    利尔达RedCap模组通过OpenHarmony 生态兼容性测评!

    //近日,利尔达NR90-HCN系列5GRedCap模组正式通过OpenHarmony4.1Release生态兼容性测评,并获得由开放原子开源基金会颁发的OpenHarmony生态产品兼容性证书
    的头像 发表于 05-23 17:59 1378次阅读
    利尔达RedCap模组通过<b class='flag-5'>OpenHarmony</b> 生态兼容性测评!

    请问下,openharmony支持哪一款龙芯的开发板?有没有开源的龙芯的openharmony源码?

    想买个2k0300的开发板学习龙芯和openharmony,愣是没有看到提供openharmony源码的,也没与看到开源的代码。gitee上,openharmony的龙芯sig仓库也是关闭的,有没有人知道现在是什么情况?
    发表于 04-26 13:06

    2024年OpenHarmony社区年度激励公示

    在过去一年里,OpenHarmony项目群技术指导委员会(TSC)向所有参与者致以最诚挚的感谢!大家的积极参与和鼎力支持推动了OpenHarmony社区的持续繁荣与高质量发展。OpenHarmony
    的头像 发表于 04-21 18:17 933次阅读

    【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第2章OpenHarmony v3.2-Beta4版本测试

    【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第2章OpenHarmony v3.2-Beta4版本测试
    的头像 发表于 03-05 10:53 880次阅读
    【北京迅为】itop-3568 开发板<b class='flag-5'>openharmony</b>鸿蒙烧写及测试-第2章<b class='flag-5'>OpenHarmony</b> v3.2-Beta4版本测试

    【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第1章 体验OpenHarmony—烧写镜像

    【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第1章 体验OpenHarmony—烧写镜像
    的头像 发表于 03-04 16:31 872次阅读
    【北京迅为】itop-3568 开发板<b class='flag-5'>openharmony</b>鸿蒙烧写及测试-第1章 体验<b class='flag-5'>OpenHarmony</b>—烧写镜像

    2K0300 OpenHarmony源码构建指南

    2K0300 OpenHarmony源码构建参考如下 2K0300先锋派OpenHarmony源码构建指南 2K0300 源码编译wiki
    发表于 02-05 09:36

    OpenHarmony程序分析框架论文入选ICSE 2025

      近日,ICSE 2025软件工程实践Track放榜,面向OpenAtom OpenHarmony(以下简称“OpenHarmony”)的ArkTS程序分析基础框架--方舟程序分析器(论文题目为
    的头像 发表于 01-02 13:41 1832次阅读
    <b class='flag-5'>OpenHarmony</b>程序分析框架论文入选ICSE 2025

    OpenHarmony城市技术论坛第12期——合肥站圆满举办

    2024年12月23日,OpenHarmony城市技术论坛(以下简称“技术论坛”)第12期——合肥站于中国科学技术大学高新校区圆满举办。本次技术论坛聚焦于“智能时代基础软件与数据管理”的主题,深入
    的头像 发表于 12-26 09:14 1290次阅读
    <b class='flag-5'>OpenHarmony</b>城市技术论坛第12期——合肥站圆满举办