藏头诗应用
目前支持的功能
-
输入主题和关键词:用户可以输入特定的主题,如爱情、友情、生日等,以及相关的关键词,以便生成更贴合需求的藏头诗。
-
选择诗体和格律:提供多种诗体选项,如五言绝句、七言律诗等,并能遵循相应的格律规则生成。
-
押韵模式选择:让用户决定是押平声韵、仄声韵还是通押。
-
风格设定:例如古典风格、现代风格、幽默风格、深情风格等。
-
自定义藏头内容:不仅能藏头词语,还能藏头句子或名字。
-
诗句解释:对生成的藏头诗中的每一句进行详细的解释,帮助用户理解诗意。
-
分享和保存:支持将生成的藏头诗分享到社交媒体,或者保存为图片、文档等格式。
-
灵感提示:在用户创作藏头内容遇到困难时,提供一些灵感和示例。
-
诗词修改建议:如果用户对生成的诗不满意,给出修改的方向和建议。
-
历史记录:保存用户生成过的藏头诗,方便回顾和再次编辑。
效果


接下来,我们一起来看一下,如何实现的。
创建项目

添加网络权限
因为数据来自于我们的后台,所以需要网络权限。
发起网络请求
接口
请求方法: [ “GET”, “POST” ]
请求参数:
名称 |
必填 |
类型 |
描述 |
示例 |
token |
true |
string |
请求token,用户中心获取。 |
用户中心获取token |
keyword |
true |
string |
藏字内容,2-8个字 |
我喜欢你 |
num |
false |
int |
诗句格式,5五言诗[默认]、7七言诗 |
5 |
type |
|
int |
藏头位置,1藏头[默认]、2藏尾、3藏中、4递增、5递减 |
1 |
rhyme |
|
|
押韵类型,1双句一压[默认]、2双句押韵、3一三四押 |
|
返回参数:
名称 |
描述 |
keyword |
输入关键字 |
poem |
生成的藏头诗 |
list |
数组格式 |
返回状态码 code
描述参照
错误码 |
说明 |
200 |
返回200表示接口正常 |
404 |
接口地址不存在 |
422 |
接口请求失败 |
400 |
接口请求失败 |
405 |
请求方法不被允许 |
100 |
token 错误 |
101 |
账号过期 |
102 |
接口请求次数超过限制 |
104 |
来源或者ip不在白名单 |
406 |
没有更多数据了 |
429 |
请求 QPS 超过限制 |
返回参数
Axios请求
Axios ,是一个基于 promise 的网络请求库,可以运行 node.js 和浏览器中。本库基于Axios 原库v1.3.4版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。
- http 请求
- Promise API
- request 和 response 拦截器
- 转换 request 和 response 的 data 数据
- 自动转换 JSON data 数据
请求数据
数据渲染
build() {
Column() {
Text("藏头诗").fontSize(30)
Text("一诗一世界") .fontSize(20). fontColor(Color.Orange).textShadow({
radius: 10,
color: Color.Orange,
offsetX: 0,
offsetY: 0
})
Text("一意一乾坤").fontSize(20) .fontColor(Color.Orange)
.textShadow({
radius: 10,
color: Color.Orange,
offsetX: 0,
offsetY: 0
})
TextInput({
placeholder: "请输出"
,
text: this.keyword
}).onChange((e: string) => {
this.keyword = e
})
.width("80%")
Text("格式")
Row() {
overBuilder(5, "五言", "checknum", (type: number) => {
this.num = 5
})
overBuilder(7, "七言", "checknum", (type: number) => {
this.num = 7
})
CheckBox({
value: 7,
title: "七言",
groupname: "checknum",
changeFactory: (type: number) => {
this.num = 7
}
})
}
Text("位置")
Flex({
justifyContent: FlexAlign.Start,
wrap: FlexWrap.Wrap
}) {
overBuilder(1, "藏头", "checktype", (type: number) => {
this.type = 3
})
CheckBox({
value: 1,
title: "藏头",
groupname: "checktype"
,
changeFactory: (type: number) => {
this.type = 1
}
})
CheckBox({
value: 2,
title: "藏尾",
groupname: "checktype"
,
changeFactory: (type: number) => {
this.type = 2
}
})
CheckBox({
value: 3,
title: "藏中",
groupname: "checktype",
changeFactory: (type: number) => {
this.type = 3
}
})
CheckBox({
value: 4,
title: "递增",
groupname: "checktype",
changeFactory: (type: number) => {
this.type = type
}
})
CheckBox({
value: 5,
title: "递减",
groupname: "checktype",
changeFactory: (type: number) => {
this.type = type
}
})
}
Text("押韵")
Row() {
CheckBox({
value: 1,
title: "双句一押",
groupname: "checkrhyme"
,
changeFactory: (type: number) => {
this.rhyme = type
}
})
CheckBox({
value: 2,
title: "双句押韵 ",
groupname: "checkrhyme"
,
changeFactory: (type: number) => {
this.rhyme = type
}
})
CheckBox({
value: 3,
title: "一三四押",
groupname: "checkrhyme",
changeFactory: (type: number) => {
this.rhyme = type
}
})
}
Text("开始作诗").fontSize(32)
.onClick(() => {
this.getData(this.num, this.type, this.rhyme)
})
}
.height('100%')
.width('100%').backgroundImage($r("app.media.img_1")).backgroundImageSize({
width: "100%",
height: "100%"
})
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
- 137.
- 138.
- 139.
- 140.
- 141.
- 142.
- 143.
- 144.
- 145.
- 146.
- 147.
- 148.
- 149.
- 150.
- 151.
- 152.
- 153.
- 154.
- 155.
- 156.
- 157.
- 158.
- 159.
- 160.
- 161.
- 162.
- 163.
- 164.
- 165.
- 166.
- 167.
- 168.
- 169.
- 170.
- 171.
这里我们还可以自定义组件
编译运行
开发完成,就可以编译运行啦。

请问藏头诗应用的链接有吗?谢谢