OpenHarmony应用开发入门——获取网络数据(1)

lywenjoy
发布于 2023-8-5 19:08
浏览
0收藏

为了学习在OpenHarmony中如何获取网络数据,我们以构建一个天气应用为例子,学习发送网络请求调用API网络获取实时数据。
第一部分
==标记==:model为数据模块
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
==标记==:其中定义了一些数据模型
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
==标记==:CityModel包含了城市id和名称
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
==标记==:HttpResponse定义了请求返回的格式
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
==标记==:NowWeatherModel定义了网络请求返回的具体数据类型
具体代码如下:
// 实时天气数据模型
export class NowWeatherModel {
code; //API状态码
updateTime; //当前API的最近更新时间
fxLink; //当前API的最近更新时间
now: {
obsTime; //数据观测时间
temp; //温度,默认单位:摄氏度
feelsLike; // 体感温度,默认单位:摄氏度
icon; //天气状况和图标的代码,图标可通过天气状况和图标下载
text; //天气状况的文字描述,包括阴晴雨雪等天气状态的描述
wind360; //风向360角度
windDir; //风向
windScale; //风力等级
windSpeed; // 风速,公里/小时
humidity; //相对湿度,百分比数值
precip; //当前小时累计降水量,默认单位:毫米
pressure; //大气压强,默认单位:百帕
vis; //能见度,默认单位:公里
cloud; //云量,百分比数值。可能为空
dew; //露点温度。可能为空
};
refer: {
sources: []; //原始数据来源,或数据源说明,可能为空
license: []; //数据许可或版权声明,可能为空
};
}
//7日天气天气数据模型
export class Weather7dModel {
code; //API状态码
updateTime; //当前API的最近更新时间
fxLink; //当前数据的响应式页面
daily: [{
fxDate; // 预报日期
sunrise; // 日出时间,在高纬度地区可能为空
sunset; // 日落时间,在高纬度地区可能为空
moonrise; // 当天月升时间,可能为空
moonset; //当天月落时间,可能为空
moonPhase; //月相名称
moonPhaseIcon; //月相图标代码
tempMax; // 预报当天最高温度
tempMin; //预报当天最低温度
iconDay; // 预报白天天气状况的图标代码
textDay; //预报白天天气状况文字描述
iconNight; //预报夜间天气状况的图标代码
textNight; //预报晚间天气状况文字描述
wind360Day; // 预报白天风向360角度
windDirDay; //预报白天风向
windScaleDay; //预报白天风力等级
windSpeedDay; //预报白天风速,公里/小时
wind360Night; //预报夜间风向360角度
windDirNight; //预报夜间当天风向
windScaleNight; //预报夜间风力等级
windSpeedNight; //预报夜间风速,公里/小时
humidity; //相对湿度,百分比数值
precip; //预报当天总降水量,默认单位:毫米
pressure; //大气压强,默认单位:百帕
vis; // 能见度,默认单位:公里
cloud; // 能见度,默认单位:公里
uvIndex; //紫外线强度指数
}
];
refer: {
sources: []; //原始数据来源,或数据源说明,可能为空
license: [] // 数据许可或版权声明,可能为空
}
}
//24小时天气预报
export class Weather24hModel {
code; //API状态码
updateTime; //当前当前数据的响应式页面,便于嵌入网站或应用API的最近更新时间
fxLink ; //
hourly: [{
fxTime; //预报时间
temp; //温度,默认单位:摄氏度
icon; //天气状况和图标的代码
text; //天气状况的文字描述
wind360; //风向360角度
windDir; //风向
windScale; //风力等级
windSpeed; //风速,公里/小时
humidity; //相对湿度,百分比数值
pop; //逐小时预报降水概率,百分比数值,可能为空
precip; //当前小时累计降水量,默认单位:毫米
pressure; //大气压强,默认单位:百帕
cloud; // 云量,百分比数值。可能为空
dew //露点温度。可能为空
}
];
refer: {
sources: []; //原始数据来源,或数据源说明,可能为空
license: [] //数据许可或版权声明,可能为空
}
}
// 实时空气质量数据模型
export class NowAirModel {
code; //API状态码
updateTime; //当前API的最近更新时间
fxLink; // 当前数据的响应式页面
now: {
pubTime; // 空气质量数据发布时间
aqi; // 空气质量指数
level; //空气质量指数等级
category; //空气质量指数级别
primary; //空气质量的主要污染物,空气质量为优时,返回值为NA
pm10; //PM10
pm2p5; //PM2.5
no2; //二氧化氮
so2; //二氧化硫
co; //一氧化碳
o3; //臭氧
};
station: [{
pubTime; //空气质量数据发布时间
name; //监测站名称
id; // 监测站ID
aqi; //空气质量指数
level; //空气质量指数等级
category; //空气质量指数级别
primary; //空气质量的主要污染物,空气质量为优时,返回值为NA
pm10; // PM10
pm2p5; //PM2.5
no2; //二氧化氮
so2; // 二氧化硫
co; //一氧化碳
o3 //臭氧
}
];
refer: {
sources: []; // 原始数据来源,或数据源说明,可能为空
license: [] //数据许可或版权声明,可能为空
}
}
==标记==:WeatherUiModel定义了UI的数据
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
第二部分
==标记==:network为网络模块,功能为发送请求
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
第三部分
==标记==:pages为UI模块,index为默认页面,view包含一些自定义组件
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
第四部分
==标记==:utils为工具类,提供了获取时间的方法
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
第五部分
==标记==:resources提供了页面使用到的图片资源
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
==标记==:上面图片为天气应用界面
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
==标记==:其中SideBarContainer是提供侧边栏可以显示和隐藏的侧边栏容器
OpenHarmony应用开发入门——获取网络数据(1)-鸿蒙开发者社区
以上为天气应用的简要分析,如有遗漏之处,还请大神们赐教!!!
感谢浏览!

已于2023-8-5 19:31:10修改
收藏
回复
举报
回复
    相关推荐