0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony趣味應(yīng)用 OpenHarmony藏頭詩(shī)應(yīng)用

ArkUI詳解 ? 2022-07-13 09:20 ? 次閱讀

今天我們將做一個(gè)OpenHarmony趣味應(yīng)用——OpenHarmony藏頭詩(shī)應(yīng)用,是通過(guò)AI接口來(lái)做。通過(guò)調(diào)用指定的AI接口來(lái)做,接口會(huì)返回藏頭詩(shī)或者繼續(xù)完成詩(shī)的后面幾句。

我要實(shí)現(xiàn)的功能主要有:

生成藏頭詩(shī),

生成整首詩(shī),

你能學(xué)到的有:

網(wǎng)絡(luò)請(qǐng)求

可滾動(dòng)組件

狀態(tài)管理

常用組件

常用屬性

修改應(yīng)用名稱和圖標(biāo)

在Config.json添加權(quán)限等

用到的接口:

接口:

https://py.myie9.com/hidepoem/堅(jiān)果

請(qǐng)求方式:

Get

apipost請(qǐng)求測(cè)試

image-20220711081818157

接口:

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

apipost請(qǐng)求測(cè)試:

image-20220711082102057

如何創(chuàng)建應(yīng)用在這里不做解釋。

首先預(yù)覽一下應(yīng)用

gif1

注意點(diǎn):

允許https需要添加下面的配置

"deviceConfig": {

"default": {

"network": {

"cleartextTraffic": true

}

}

},

使用網(wǎng)絡(luò)請(qǐng)求在config.json添加權(quán)限:

"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 = "堅(jiān)果的小跟班";

@State tibetanInput: string = "跟著堅(jiān)果學(xué)鴻蒙";

@State wholeContent: string = "";

@State wholeInput: string = "跟著堅(jiān)果學(xué)鴻蒙";

private scroller: Scroller = new Scroller()

?

?

?

onCancel() {

console.info('關(guān)閉')

}

?

?

?

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: '請(qǐng)輸入要生成的內(nèi)容', })

.fontSize(36)

.enterKeyType(EnterKeyType.Go)

.onChange((value) => {

this.tibetanInput = value;

?

})

.height(80)

.margin({

top: 40,

left: 16,

right: 16

})

?

Button("生成藏頭詩(shī)").backgroundColor(Color.Pink)

.onClick(() => {

this.TibetanRequest();

?

})

Text(this.tibetanContent).fontSize(26).fontColor(Color.Orange)

TextInput({ placeholder: '請(qǐng)輸入要生成的內(nèi)容', })

.fontSize(36)

.enterKeyType(EnterKeyType.Go)

.onChange((value) => {

this.wholeInput = value;

?

})

.height(80)

.margin({

?

left: 16,

right: 16

})

Button("生成整首詩(shī)").backgroundColor(Color.Green)

.onClick(() => {

this.wholePoemRequest();

})

Text(this.wholeContent).fontSize(24).fontColor(Color.Orange)

}

.padding(10)

}

?

}

//藏頭詩(shī)接口

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);

}

?

}

}

?

);

}

?

//整首詩(shī)接口

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);

}

}

}

);

}

}

發(fā)起網(wǎng)絡(luò)請(qǐng)求

使用 @ohos.net.http 模塊發(fā)起網(wǎng)絡(luò)請(qǐng)求分為以下步驟:

引入http模塊

import

http

from

'@ohos.net.http'

;

創(chuàng)建一個(gè)httpRequest

let

httpRequest

=

http

.

createHttp

();

發(fā)起http請(qǐng)求

httpRequest 提供了兩種 request() 方法進(jìn)行網(wǎng)絡(luò)請(qǐng)求,分別是無(wú) RequestOptions 參數(shù)的請(qǐng)求和有 RequestOptions 參數(shù)的請(qǐng)求。分別介紹如下:

無(wú) RequestOptions 參數(shù)請(qǐng)求

  1. //藏頭詩(shī)接口
    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() 方法默認(rèn)采用 get 方式請(qǐng)求。

上述代碼,重點(diǎn)是通過(guò)調(diào)用HTTP的AI接口,來(lái)獲取生成接口返回的詩(shī)的內(nèi)容,并顯示在應(yīng)用界面上。

修改應(yīng)用描述信息

默認(rèn)的應(yīng)用描述信息,集中在config.json文件中。

image-20220711111409744

修改string.json內(nèi)容如下:

"srcLanguage": "ets",

"srcPath": "MainAbility",

"icon": "$media:icon", //應(yīng)用圖標(biāo)

"description": "$string:desc",

"label": "$string:title", //應(yīng)用名稱

"type": "page",

"visible": true,

"launchType": "standard"

這么有趣的應(yīng)用就這樣完成了,比起js開(kāi)發(fā)方式,eTS是不是更為簡(jiǎn)單呢。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1980

    瀏覽量

    30330
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3731

    瀏覽量

    16434
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    OpenHarmony程序分析框架論文入選ICSE 2025

      近日,ICSE 2025軟件工程實(shí)踐Track放榜,面向OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)的ArkTS程序分析基礎(chǔ)框架--方舟程序分析器(論文題目為
    的頭像 發(fā)表于 01-02 13:41 ?157次閱讀
    <b class='flag-5'>OpenHarmony</b>程序分析框架論文入選ICSE 2025

    第三屆OpenHarmony技術(shù)大會(huì)星光璀璨、致謝OpenHarmony社區(qū)貢獻(xiàn)者

    10月12日,在上海舉辦的第三屆OpenHarmony技術(shù)大會(huì)上,32家高校OpenHarmony技術(shù)俱樂(lè)部璀璨亮相,30家高校OpenHarmony開(kāi)發(fā)者協(xié)會(huì)盛大啟幕。還分別致謝了年度星光TSG
    的頭像 發(fā)表于 10-21 14:10 ?238次閱讀

    第三屆OpenHarmony技術(shù)大會(huì) “OpenHarmony開(kāi)發(fā)者激勵(lì)計(jì)劃”授牌儀式圓滿舉行

    10月12日,以“技術(shù)引領(lǐng)筑生態(tài),萬(wàn)物智聯(lián)創(chuàng)未來(lái)”為主題的第三屆OpenHarmony技術(shù)大會(huì)隆重舉行,“OpenHarmony開(kāi)發(fā)者激勵(lì)計(jì)劃”授牌儀式在大會(huì)期間同步進(jìn)行。該計(jì)劃旨在增加
    的頭像 發(fā)表于 10-21 11:48 ?295次閱讀
    第三屆<b class='flag-5'>OpenHarmony</b>技術(shù)大會(huì) “<b class='flag-5'>OpenHarmony</b>開(kāi)發(fā)者激勵(lì)計(jì)劃”授牌儀式圓滿舉行

    OpenHarmony年度技術(shù)俱樂(lè)部、個(gè)人及活動(dòng)評(píng)選結(jié)果公示

    2024年度技術(shù)俱樂(lè)部評(píng)選活動(dòng)已經(jīng)圓滿結(jié)束。在此,OpenHarmony項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)(TSC)對(duì)所有參與者的積極參與和辛勤付出表示感謝。經(jīng)過(guò)嚴(yán)格的評(píng)選和審核,現(xiàn)將名單予以公示: 評(píng)選
    的頭像 發(fā)表于 10-05 08:07 ?280次閱讀

    基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫(xiě)的UI應(yīng)用類(lèi):HelloOpenHarmony。本案例是基于API9接口開(kāi)發(fā)。本案例已在OpenHarmony凌蒙派-RK3568開(kāi)發(fā)
    的頭像 發(fā)表于 09-15 08:09 ?442次閱讀
    基于ArkTS語(yǔ)言的<b class='flag-5'>OpenHarmony</b> APP應(yīng)用開(kāi)發(fā):Hello<b class='flag-5'>Openharmony</b>

    基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介 該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫(xiě)的UI應(yīng)用類(lèi):HelloOpenHarmony。 本案例是基于API 9接口開(kāi)發(fā)。 本案例已在OpenHarmony凌蒙派-RK3568
    發(fā)表于 09-14 12:47

    河南大學(xué)OpenHarmony技術(shù)俱樂(lè)部正式揭牌成立

    8月30日,由OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)與河南大學(xué)共同舉辦的“河南大學(xué)OpenHarmony技術(shù)俱樂(lè)部成立大會(huì)”在鄭州校區(qū)友蘭
    的頭像 發(fā)表于 09-03 16:12 ?445次閱讀
    河南大學(xué)<b class='flag-5'>OpenHarmony</b>技術(shù)俱樂(lè)部正式揭牌成立

    openharmony移植AT32F407編譯時(shí)錯(cuò)誤

    openharmony上移植AT32F407,hb build后出現(xiàn)鏈接錯(cuò)誤 [OHOS ERROR] /home/sven/openharmony/env_setup
    發(fā)表于 08-18 17:04

    OpenHarmony之開(kāi)機(jī)優(yōu)化

    一丶環(huán)境信息 源碼版本:OpenHarmony-4.1-Release 板子型號(hào):dayu200(RK3568) 二丶Bootchart工具 在開(kāi)機(jī)優(yōu)化時(shí),我們需要借助Bootchart工具,當(dāng)前
    發(fā)表于 07-01 16:39

    鴻蒙OpenHarmony【創(chuàng)建工程并獲取源碼】

    在通過(guò)DevEco Device Tool創(chuàng)建OpenHarmony工程時(shí),可自動(dòng)下載相應(yīng)版本的OpenHarmony源碼。
    的頭像 發(fā)表于 04-19 21:40 ?397次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【創(chuàng)建工程并獲取源碼】

    OpenHarmony南向開(kāi)發(fā)案例:【分布式畫(huà)板】

    使用OpenHarmony3.1-Release開(kāi)發(fā)的應(yīng)用。通過(guò)OpenHarmony的分布式技術(shù),使多人能夠一起畫(huà)畫(huà)。
    的頭像 發(fā)表于 04-12 14:40 ?1066次閱讀
    <b class='flag-5'>OpenHarmony</b>南向開(kāi)發(fā)案例:【分布式畫(huà)板】

    OpenHarmony南向能力征集令

    1、適配過(guò)程中缺少哪些接口能力或者南向能力,需要OpenHarmony去補(bǔ)齊的?例如內(nèi)核、編譯、器件適配、單板適配等; 2、對(duì)標(biāo)linux,需要OpenHarmony提供哪些能力?比如V4L2
    發(fā)表于 04-09 15:32

    OpenAtom OpenHarmony 4.1 Release版本正式發(fā)布

    近日,OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)4.1 Release版本如期而至,開(kāi)發(fā)套件同步升級(jí)到API 11 Release。
    的頭像 發(fā)表于 04-07 11:43 ?718次閱讀

    OpenHarmony內(nèi)核編程實(shí)戰(zhàn)

    編程入門(mén)[Hello,OpenHarmony]在正式開(kāi)始之前,對(duì)于剛接觸OpenHarmony的伙伴們,面對(duì)大篇幅的源碼可能無(wú)從下手,不知道怎么去編碼寫(xiě)程序,下面用一個(gè)簡(jiǎn)單的例子帶伙伴們?nèi)腴T(mén)。▍任務(wù)
    的頭像 發(fā)表于 03-27 08:31 ?895次閱讀
    <b class='flag-5'>OpenHarmony</b>內(nèi)核編程實(shí)戰(zhàn)

    淺談兼容 OpenHarmony 的 Flutter

    OpenHarmony SIG 組織在 Gitee 開(kāi)源了兼容 OpenHarmony 的 Flutter。該組織主要用于孵化 OpenHarmony 相關(guān)的開(kāi)源生態(tài)項(xiàng)目。 ? ? ▲ 倉(cāng)庫(kù)地址
    的頭像 發(fā)表于 02-02 15:22 ?640次閱讀
    淺談兼容 <b class='flag-5'>OpenHarmony</b> 的 Flutter