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
    +关注

    关注

    79

    文章

    1968

    浏览量

    30050
  • OpenHarmony
    +关注

    关注

    25

    文章

    3677

    浏览量

    16174
收藏 人收藏

    评论

    相关推荐

    第三届OpenHarmony技术大会星光璀璨、致谢OpenHarmony社区贡献者

    10月12日,在上海举办的第三届OpenHarmony技术大会上,32家高校OpenHarmony技术俱乐部璀璨亮相,30家高校OpenHarmony开发者协会盛大启幕。还分别致谢了年度星光TSG
    的头像 发表于 10-21 14:10 196次阅读

    OpenHarmony年度技术俱乐部、个人及活动评选结果公示

    2024年度技术俱乐部评选活动已经圆满结束。在此,OpenHarmony项目群技术指导委员会(TSC)对所有参与者的积极参与和辛勤付出表示感谢。经过严格的评选和审核,现将名单予以公示: 评选
    的头像 发表于 10-05 08:07 194次阅读

    基于ArkTS语言的OpenHarmony APP应用开发:HelloOpenharmony

    1、程序简介该程序是基于OpenHarmony标准系统编写的UI应用类:HelloOpenHarmony。本案例是基于API9接口开发。本案例已在OpenHarmony凌蒙派-RK3568开发
    的头像 发表于 09-15 08:09 329次阅读
    基于ArkTS语言的<b class='flag-5'>OpenHarmony</b> APP应用开发:Hello<b class='flag-5'>Openharmony</b>

    河南大学OpenHarmony技术俱乐部正式揭牌成立

    8月30日,由OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会与河南大学共同举办的“河南大学OpenHarmony技术俱乐部成立大会”在郑州校区友兰
    的头像 发表于 09-03 16:12 365次阅读
    河南大学<b class='flag-5'>OpenHarmony</b>技术俱乐部正式揭牌成立

    鸿蒙OpenHarmony【创建工程并获取源码】

    在通过DevEco Device Tool创建OpenHarmony工程时,可自动下载相应版本的OpenHarmony源码。
    的头像 发表于 04-19 21:40 352次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【创建工程并获取源码】

    OpenHarmony南向能力征集令

    1、适配过程中缺少哪些接口能力或者南向能力,需要OpenHarmony去补齐的?例如内核、编译、器件适配、单板适配等; 2、对标linux,需要OpenHarmony提供哪些能力?比如V4L2
    发表于 04-09 15:32

    OpenAtom OpenHarmony 4.1 Release版本正式发布

    近日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)4.1 Release版本如期而至,开发套件同步升级到API 11 Release。
    的头像 发表于 04-07 11:43 653次阅读

    OpenHarmony内核编程实战

    编程入门[Hello,OpenHarmony]在正式开始之前,对于刚接触OpenHarmony的伙伴们,面对大篇幅的源码可能无从下手,不知道怎么去编码写程序,下面用一个简单的例子带伙伴们入门。▍任务
    的头像 发表于 03-27 08:31 744次阅读
    <b class='flag-5'>OpenHarmony</b>内核编程实战

    浅谈兼容 OpenHarmony 的 Flutter

    OpenHarmony SIG 组织在 Gitee 开源了兼容 OpenHarmony 的 Flutter。该组织主要用于孵化 OpenHarmony 相关的开源生态项目。     ▲ 仓库地址
    的头像 发表于 02-02 15:22 580次阅读
    浅谈兼容 <b class='flag-5'>OpenHarmony</b> 的 Flutter

    OpenHarmony社区运营报告(2023年12月)

    点击蓝字 ╳ 关注我们 开源项目 OpenHarmony 是每个人的 OpenHarmony • 截至2023年12月22日,OpenAtom OpenHarmony(简称
    的头像 发表于 01-08 21:15 748次阅读
    <b class='flag-5'>OpenHarmony</b>社区运营报告(2023年12月)

    厦门大学OpenHarmony技术俱乐部正式揭牌成立

    点击蓝字 ╳ 关注我们 开源项目 OpenHarmony 是每个人的 OpenHarmony 12月29日下午,由OpenAtom OpenHarmony(简称“OpenHarmony
    的头像 发表于 01-04 21:15 534次阅读
    厦门大学<b class='flag-5'>OpenHarmony</b>技术俱乐部正式揭牌成立

    OpenHarmony Meetup 2023南京站亮点抢先看

    点击蓝字 ╳ 关注我们 开源项目 OpenHarmony 是每个人的 OpenHarmony 原文标题:OpenHarmony Meetup 2023南京站亮点抢先看 文章出处:【微信公众号:OpenAtom
    的头像 发表于 12-25 21:10 560次阅读
    <b class='flag-5'>OpenHarmony</b> Meetup 2023南京站亮点抢先看

    openharmony开发应用

    随着智能设备的普及和多样化,开发者们对于更加灵活、高效的操作系统需求与日俱增。在这个背景下,华为推出了OpenHarmony,一个全场景智能终端操作系统和生态平台。本文将详细探讨
    的头像 发表于 12-19 09:42 647次阅读

    九联科技携手惠州学院共建OpenHarmony创新实验室共筑OpenHarmony人才生态

    进行OpenHarmony 创新实验室揭牌。 作为OpenHarmony核心共建单位之一和A类捐赠人,九联科技一直致力于推动OpenHarmony技术的发展和应用。为了更好地培养OpenHar
    的头像 发表于 12-18 09:13 655次阅读
    九联科技携手惠州学院共建<b class='flag-5'>OpenHarmony</b>创新实验室共筑<b class='flag-5'>OpenHarmony</b>人才生态

    培育根技术人才 共建OpenHarmony根社区未来 | OpenHarmony打造下一代智能终端操作系统根社区,繁茂人才生态

    点击蓝字 ╳ 关注我们 开源项目 OpenHarmony 是每个人的 OpenHarmony 2023年12月12日,OpenHarmony人才生态大会(以下简称“大会”)在上海召开。本次大会以
    的头像 发表于 12-15 16:15 384次阅读