OpenHarmony开发者论坛
标题:
OpenHarmony制作简易天气预报小程序
[打印本页]
作者:
俺也不知道叫啥名字好听
时间:
2024-12-29 20:25
标题:
OpenHarmony制作简易天气预报小程序
[md]# OpenHarmony制作简易天气预报小程序
---
## 简介
---
**天气预报是对未来一定时期内天气状况的预测和报告。通过调用一些简单的API可以使我们的小程序实现此功能。**
## 页面内容
---
##### 城市名称
**明确显示所查询或定位的城市名称,方便用户快速确认天气信息对应的地区。**
##### 城市天气
**以文字或图标形式展示城市当前及未来的天气状况,如晴天、多云、阴天、雨天、雪天等。**
##### 城市温度
**包括当前温度的温度预测,让用户快速知晓当下的冷暖程度。**
## 项目效果图
![微信图片_20241229202502.png](
https://forums-obs.openharmony.c ... 95m7txd2z8jm21m.png
"微信图片_20241229202502.png")
![](file:///S:/%E5%BC%80%E6%BA%90%E6%8A%80%E6%9C%AF%E5%88%9B%E6%96%B0/%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2.png?lastModify=1735474882)
## 代码实现
---
```
import http from '@ohos.net.http';
@Entry
@Component
struct UserPage {
@State message: string = 'Hello World'
@State cityname: string = ''
@State citytianqi: string = ''
@State cityqiwen: string = ''
get_weather(){
let httpRequest=http.createHttp();
httpRequest.request(
"http://api.yytianqi.com/observe",
{
method:http.RequestMethod.GET,
extraData:{
"city":"CH020100",
"key":"4amj0gpv26uw3dcg"
},
connectTimeout:60000,
readTimeout:60000,
header:{
"Content-Type":"applicationn/json",
"charset":"utf-8"
}
},
(err,data)=>{
var weatherString=JSON.parse(data.result.toString());
this.cityname=weatherString.data.cityName;
this.citytianqi=weatherString.data.tq;
this.cityqiwen=weatherString.data.qw;
}
)
}
aboutToAppear(){
this.get_weather();
}
build() {
Row(){
Column(){
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Column(){
Row(){
Text("城市名称:")
.width("50%")
.height("100%")
.fontColor(Color.Black)
.margin({left:"0vp"})
.textAlign(TextAlign.Center)
.fontSize("20fp")
Text(this.cityname)
.width("50%")
.height("100%")
.fontColor(Color.Black)
.fontSize("20fp")
}
.width("360vp")
.height("50.1vp")
Row(){
Text("城市天气:")
.width("50%")
.height("100%")
.fontColor(Color.Black)
.margin({left:"0vp"})
.textAlign(TextAlign.Center)
.fontSize("20fp")
Text(this.citytianqi)
.width("50%")
.height("100%")
.fontColor(Color.Black)
.fontSize("20fp")
}
.width("360vp")
.height("50.1vp")
Row(){
Text("城市温度:")
.width("50%")
.height("100%")
.fontColor(Color.Black)
.margin({left:"0vp"})
.textAlign(TextAlign.Center)
.fontSize("20fp")
Text(this.cityqiwen)
.width("50%")
.height("100%")
.fontColor(Color.Black)
.fontSize("20fp")
}
.width("360vp")
.height("50.1vp")
}
}
}
}
}
```
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5