基于HarmonyOS鸿蒙Next ArkUI eTS开发的坚果笑话(NutJoke)

基于HarmonyOS鸿蒙Next ArkUI eTS开发的坚果笑话(NutJoke)

基于ArkUI eTS开发的坚果笑话(NutJoke)

都说笑一笑十年少,确实,在生活中,我们也是很久没有笑了,那么今天,我就做一个鸿蒙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

效果预览:

笑话大全接口

我们用到的接口:

接口备注:根据时间戳返回该时间点前或后的笑话列表

请求参数说明:

名称 必填 类型 说明
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"
            },
            ...
        ]
    }
}

接下来,我们开始今天的实战,首先创建一个项目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字符串

[
    {
      "content": "有一天晚上我俩一起吃西瓜,老大把西瓜籽很整洁的吐在了一张纸上,\r\n过了几天,我从教室回但宿舍看到老大在磕瓜子,\r\n我就问他:老大,你什么时候买的瓜子?\r\n老大说:刚晒好,说着抓了一把要递给我……",
      "hashId": "bcc5fdc2fb6efc6db33fa242474f108a",
      "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> // 笑话
  }
}

参考文档

  • 聚合数据
  • Text
  • 尺寸设置
  • 边框设置

项目地址


更多关于基于HarmonyOS鸿蒙Next ArkUI eTS开发的坚果笑话(NutJoke)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

15 回复

坐等下文。。。

更多关于基于HarmonyOS鸿蒙Next ArkUI eTS开发的坚果笑话(NutJoke)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


没有下文,这边不支持外部的超链接,可以去我的github看,

我找不到你的github,你的gitte里没有,

老师我下载了你的教学APP了,对于model这层,这么写是为了什么呢?比如JS获取接口直接就可以渲染了,ets这里这样写有什么意义呢

cke_144.png

cke_676.png

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

姓名: 张三
年龄: 28
职位: 软件工程师
描述: 这是一个测试描述,用于展示如何将HTML内容转换为Markdown格式。

gitee:jianguo888

老师你的库里,没有这个项目啊,

我康一下,

请问老师你的github,

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

能不能做成网络请求的呀😂

基于HarmonyOS鸿蒙Next的ArkUI eTS开发的坚果笑话(NutJoke)应用,主要利用了鸿蒙系统的ArkUI框架和eTS(extended TypeScript)语言进行开发。ArkUI是鸿蒙系统提供的一套UI开发框架,支持声明式UI和响应式编程,能够高效地构建用户界面。eTS是鸿蒙系统对TypeScript的扩展,提供了更丰富的API和更高效的开发体验。

在NutJoke应用中,开发者通过ArkUI的组件和布局系统,构建了简洁直观的用户界面。应用的主要功能是展示和分享坚果相关的笑话,用户可以通过滑动、点击等交互方式浏览笑话内容。ArkUI的响应式编程模型使得UI能够根据数据的变化自动更新,提升了开发效率和用户体验。

此外,NutJoke应用还利用了鸿蒙系统的分布式能力,支持多设备协同。用户可以在手机、平板、智慧屏等设备上无缝切换使用应用,享受一致的使用体验。鸿蒙系统的分布式数据管理技术确保了用户数据在不同设备间的同步和共享。

总的来说,NutJoke应用展示了鸿蒙系统在UI开发、响应式编程和分布式能力方面的优势,为开发者提供了一个高效、灵活的开发平台。

基于HarmonyOS鸿蒙Next的ArkUI eTS框架开发的坚果笑话(NutJoke)应用,主要利用eTS的声明式UI和组件化开发能力,实现笑话的展示与交互。应用通过API获取笑话数据,并使用ArkUI的布局组件(如Flex、List等)进行动态展示。用户可以通过按钮刷新笑话,或通过滑动切换笑话。应用还支持数据持久化,确保用户下次打开时能继续浏览之前的笑话。整体开发流程简洁高效,充分发挥了鸿蒙系统的跨设备优势。

回到顶部