当前位置:网站首页>基于ArkUI eTS开发的坚果笑话(NutJoke)
基于ArkUI eTS开发的坚果笑话(NutJoke)
2022-07-27 09:08:00 【华为云】
都说笑一笑十年少,确实,在生活中,我们也是很久没有笑了,那么今天,我就做一个鸿蒙eTS版的坚果笑话App,
实现的功能:
获取接口数据
笑话列表
笑话详情页
你能学到的有:
网络请求
可滚动组件
容器组件
路由跳转
文件结构
.├── config.json├── ets│ └── MainAbility│ ├── app.ets│ ├── common│ │ └── RealtimeWeather.ets│ ├── data│ │ └── get_test.ets│ ├── model│ │ ├── jokeDetailModel.ets│ │ └── jokeModel.ets│ └── pages│ ├── Main.ets│ └── jokeDetails.ets└── resources ├── base │ ├── element │ │ ├── color.json │ │ └── string.json │ └── media │ └── icon.png └── rawfile效果预览:



笑话大全接口
我们用到的接口:
接口地址:http://v.juhe.cn/joke/content/list.php
返回格式:json
请求方式:http get
请求示例:http://v.juhe.cn/joke/content/list.php?key=您申请的KEY&page=2&pagesize=10&sort=asc&time=1418745237
接口备注:根据时间戳返回该时间点前或后的笑话列表
请求参数说明:
| 名称 | 必填 | 类型 | 说明 | |
|---|---|---|---|---|
| sort | 是 | string | 类型,desc:指定时间之前发布的,asc:指定时间之后发布的 | |
| page | 否 | int | 当前页数,默认1,最大20 | |
| pagesize | 否 | int | 每次返回条数,默认1,最大20 | |
| time | 是 | string | 时间戳(10位),如:1418816972 | |
| key | 是 | string | 在个人中心->我的数据,接口名称上方查看 |
返回参数说明:
| 名称 | 类型 | 说明 | |
|---|---|---|---|
| error_code | int | 返回码 | |
| reason | string |
JSON返回示例
{ "error_code": 0, "reason": "Success", "result": { "data": [ { "content": "有一天晚上我俩一起吃西瓜,老大把西瓜籽很整洁的吐在了一张纸上,\r\n过了几天,我从教室回但宿舍看到老大在磕瓜子,\r\n我就问他:老大,你什么时候买的瓜子?\r\n老大说:刚晒好,说着抓了一把要递给我……", "hashId": "bcc5fdc2fb6efc6db33fa242474f108a", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": ""我女朋友气跑了"\r\n"怎么回事?严重吗?你怎么着她了?"\r\n"不严重,我只是很久没用了"", "hashId": "03a6095c18e1d6fe7e2c19b2a20d03d1", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "还说神马来一场说走就走的旅行,\r\n工作后就连一场说走就走的下班都不行。", "hashId": "10edf75c1e7d0933c91f0f39a28a2c84", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "高速路上堵车,路边葡萄地里有一哥们竟然在偷葡萄,心想太没素质了吧!\r\n不管了我也去,刚溜进葡萄地,那哥们竟问我干嘛,\r\n我撇了一眼反问道你干嘛呢?\r\n那哥们答道摘葡萄呢!\r\n我答道:我也摘葡萄呢!\r\n哥们郁闷了说我摘我家的你呢?\r\n我顿时脸红,哥你家葡萄咋卖呢?", "hashId": "bb572bb5b4844badb31012983f7324f5", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "和老婆在街边散步,我手上捏着一张已揉成一团的传单,\r\n走了好一会终于看到个垃圾桶,我赶紧跑过去想扔掉,\r\n没想到老婆从后边一把拉住我说:老公,那个肯定吃不得了,别捡。\r\n我一愣,发现垃圾桶顶盖上放着半个西瓜。", "hashId": "7ebccd3bbfaf24e010f9eb3ee68234bd", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "某考生考了个倒数第一,回到家被他爸一顿暴揍,\r\n来到学校老师让他谈谈落后的体会,\r\n学生:“我终于明白了“落后就要挨打”的道理。”", "hashId": "4aee2aa6a79c67682f605c4146a8eca4", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "很多人不喜欢朝九晚五的生活,然后开始创业。\r\n最终,他的生活变成了朝五晚九。", "hashId": "7b358c4b96cf4a8d82b85545ea8f9603", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "钱这个东西,真是害人精。\r\n小到人与人之间的矛盾,大到国家之间的战争,无不是为了钱。\r\n钱可以把人推上万众瞩目之颠,也可以使人瞬间变成阶下囚。\r\n可是,富人们却没认识到,当钱几辈子花不完时,\r\n挣再多已经没有意义,还不如早日尽点社会责任,\r\n捐助给需要的人,求得个平安幸福。\r\n看到这个的有钱人们呐,你们什么时侯能捐我点啊!", "hashId": "94e18075f8c9c8211dfed5f8d6a62983", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "看到一句很好的名言:我们无法拉伸生命的长度,但是我们可以拓展生命的宽度。\r\n我觉得这句话太有道理了!\r\n意思就是:虽然我们无法再长高了,但是我们还可以继续长胖。", "hashId": "fd8e364a4c70d46e77c1610879748a9a", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "女生口中所说的“理工男好萌好棒好想嫁!”,\r\n其实理工男是指“会修电脑、会设置手机、会安家用电器、\r\n会帮做PPT打EXCEL表PS修图、话少、高冷、专一、不和乱七八糟的女生来往、\r\n不爱打扮却又干净清爽、高高瘦瘦、手指纤长、戴黑框眼镜超好看的帅哥”。\r\n其实找个帅哥让他学电脑,再戴个眼镜就OK了。", "hashId": "5001c08a3cc8a281b15c467bc15a4911", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" } ] }}接下来,我们开始今天的实战,首先创建一个项目NutJoke

点击下一步

因为我们要网络请求
所以我们需要在config.json中配置网络请求权限
网络请求的步骤
1、声明网络请求权限
在entry下的config.json中module字段下配置权限
"reqPermissions": [ { "name": "ohos.permission.INTERNET" }]2、支持http明文请求
默认支持https,如果要支持http,在entry下的config.json中deviceConfig字段下配置
"deviceConfig": {"default": { "network": { "cleartextTraffic": true } }},3、创建HttpRequest
// 导入模块import http from '@ohos.net.http';// 创建HttpRequest对象let httpRequest = http.createHttp();4、发起请求
GET请求(默认为GET请求)
// 请求方式:GET getRequest() { // 每一个httpRequest对应一个http请求任务,不可复用 let httpRequest = http.createHttp() let url = 'https://devapi.qweather.com/v7/weather/now?location=101010100&key=48fbadf80bbc43ce853ab9a92408373e' httpRequest.request(url, (err, data) => { if (!err) { if (data.responseCode == 200) { console.info('=====data.result=====' + data.result) // 解析数据 //this.content= data.result; // 解析数据 var weatherModel: WeatherModel = JSON.parse(data.result.toString()) // 判断接口返回码,0成功 if (weatherModel.code == 200) { // 设置数据 this.realtime = weatherModel.now this.isRequestSucceed = true; console.info('=====data.result===this.content==' + weatherModel.now) } else { // 接口异常,弹出提示 prompt.showToast({ message: "数据请求失败" }) } } else { // 请求失败,弹出提示 prompt.showToast({ message: '网络异常' }) } } else { // 请求失败,弹出提示 prompt.showToast({ message: err.message }) } })}5、解析数据(简单示例)
1.网络请求到的json字符串
export function getTest() { return [ { "content": "有一天晚上我俩一起吃西瓜,老大把西瓜籽很整洁的吐在了一张纸上,\r\n过了几天,我从教室回但宿舍看到老大在磕瓜子,\r\n我就问他:老大,你什么时候买的瓜子?\r\n老大说:刚晒好,说着抓了一把要递给我……", "hashId": "bcc5fdc2fb6efc6db33fa242474f108a", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": ""我女朋友气跑了"\r\n"怎么回事?严重吗?你怎么着她了?"\r\n"不严重,我只是很久没用了"", "hashId": "03a6095c18e1d6fe7e2c19b2a20d03d1", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "还说神马来一场说走就走的旅行,\r\n工作后就连一场说走就走的下班都不行。", "hashId": "10edf75c1e7d0933c91f0f39a28a2c84", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "高速路上堵车,路边葡萄地里有一哥们竟然在偷葡萄,心想太没素质了吧!\r\n不管了我也去,刚溜进葡萄地,那哥们竟问我干嘛,\r\n我撇了一眼反问道你干嘛呢?\r\n那哥们答道摘葡萄呢!\r\n我答道:我也摘葡萄呢!\r\n哥们郁闷了说我摘我家的你呢?\r\n我顿时脸红,哥你家葡萄咋卖呢?", "hashId": "bb572bb5b4844badb31012983f7324f5", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "和老婆在街边散步,我手上捏着一张已揉成一团的传单,\r\n走了好一会终于看到个垃圾桶,我赶紧跑过去想扔掉,\r\n没想到老婆从后边一把拉住我说:老公,那个肯定吃不得了,别捡。\r\n我一愣,发现垃圾桶顶盖上放着半个西瓜。", "hashId": "7ebccd3bbfaf24e010f9eb3ee68234bd", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "某考生考了个倒数第一,回到家被他爸一顿暴揍,\r\n来到学校老师让他谈谈落后的体会,\r\n学生:“我终于明白了“落后就要挨打”的道理。”", "hashId": "4aee2aa6a79c67682f605c4146a8eca4", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "很多人不喜欢朝九晚五的生活,然后开始创业。\r\n最终,他的生活变成了朝五晚九。", "hashId": "7b358c4b96cf4a8d82b85545ea8f9603", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "钱这个东西,真是害人精。\r\n小到人与人之间的矛盾,大到国家之间的战争,无不是为了钱。\r\n钱可以把人推上万众瞩目之颠,也可以使人瞬间变成阶下囚。\r\n可是,富人们却没认识到,当钱几辈子花不完时,\r\n挣再多已经没有意义,还不如早日尽点社会责任,\r\n捐助给需要的人,求得个平安幸福。\r\n看到这个的有钱人们呐,你们什么时侯能捐我点啊!", "hashId": "94e18075f8c9c8211dfed5f8d6a62983", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "看到一句很好的名言:我们无法拉伸生命的长度,但是我们可以拓展生命的宽度。\r\n我觉得这句话太有道理了!\r\n意思就是:虽然我们无法再长高了,但是我们还可以继续长胖。", "hashId": "fd8e364a4c70d46e77c1610879748a9a", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" }, { "content": "女生口中所说的“理工男好萌好棒好想嫁!”,\r\n其实理工男是指“会修电脑、会设置手机、会安家用电器、\r\n会帮做PPT打EXCEL表PS修图、话少、高冷、专一、不和乱七八糟的女生来往、\r\n不爱打扮却又干净清爽、高高瘦瘦、手指纤长、戴黑框眼镜超好看的帅哥”。\r\n其实找个帅哥让他学电脑,再戴个眼镜就OK了。", "hashId": "5001c08a3cc8a281b15c467bc15a4911", "unixtime": 1418814837, "updatetime": "2014-12-17 19:13:57" } ]}2.创建相应的对象
export class JokeDetailData { content: string // 内容 hashId: string // 哈希值 unixtime: number // updatetime: string //更新时间}import { JokeDetailData } from './jokeDetailModel';export class JokeModel { reason: string //返回说明 error_code: number //返回码,0为查询成功 result: { data: Array<JokeDetailData> // 笑话 }}参考文档
项目地址
-
边栏推荐
- Mmrotate trains its dataset from scratch
- N queen problem (backtracking, permutation tree)
- Solve the problem of Chinese garbled code on the jupyter console
- Implementation of queue (sequential storage, chain storage)
- Replace restricts the text box to regular expressions of numbers, numbers, letters, etc
- "Weilai Cup" 2022 Niuke summer multi school training camp 1
- NIO this.selector.select()
- Built in method of tensorflow model training and evaluation
- 苹果降价600元,对本就溃败的国产旗舰手机几乎是毁灭性打击
- Babbitt | yuan universe daily must read: Guangzhou Nansha released the "Yuan universe nine" measures, and the platform can obtain up to 200million yuan of financial support
猜你喜欢

Hangzhou E-Commerce Research Institute released an explanation of the new term "digital existence"

“鼓浪屿元宇宙”,能否成为中国文旅产业的“升级样本”

Deep understanding of Kalman filter (3): multidimensional Kalman filter

pollFirst(),pollLast(),peekFirst(),peekLast()

How to optimize the deep learning model to improve the reasoning speed

B tree

linux安装和远程连接mysql记录

Deep understanding of Kalman filter (2): one dimensional Kalman filter

Low cost, low threshold, easy deployment, a new choice for the digital transformation of 48 million + small and medium-sized enterprises

Babbitt | yuan universe daily must read: Guangzhou Nansha released the "Yuan universe nine" measures, and the platform can obtain up to 200million yuan of financial support
随机推荐
四个开源的人脸识别项目分享
Sequential storage and chain storage of stack implementation
Kibana uses JSON document data
pollFirst(),pollLast(),peekFirst(),peekLast()
Matlab求解微分代数方程 (DAE)
Programming style
Matlab画图技巧与实例:堆叠图stackedplot
Is it safe to buy funds every day? Online and other answers
如何在B站上快乐的学习?
Activation functions commonly used in deep learning
CUDA programming-01: build CUDA Programming Environment
linux安装和远程连接mysql记录
Unity3d 2021 software installation package download and installation tutorial
How to study happily on station B?
BOM的常用操作和有关获取页面/窗口高度、宽度及滚动的兼容性写法
Mangodb simple to use
E. Split into two sets
新年小目标!代码更规范!
PyTorch自定义CUDA算子教程与运行时间分析
MySQL basic knowledge learning (I)