uniapp小程序官方天气api如何使用
我在uniapp开发小程序时需要接入官方天气API,但文档说明不太清楚。具体有几个问题想请教:
- 如何申请和配置天气API的权限?需要哪些步骤?
- API的调用频率和限制是多少?
- 返回的天气数据格式是怎样的?有哪些关键字段需要注意?
- 在小程序中调用时有没有特殊的域名配置要求?
- 能否提供一个完整的调用示例代码?
调试时一直报错,希望能得到详细的指导。
2 回复
UniApp本身不提供官方天气API。你可以:
- 使用第三方天气API(如和风、高德)
- 在manifest.json配置网络权限
- 通过uni.request调用接口
- 返回数据后渲染到页面
记得申请API密钥,注意每日调用限制。
UniApp 小程序中,官方并未提供专门的天气 API,但你可以通过以下两种常用方式实现天气功能:
1. 使用第三方天气 API
推荐高德地图、和风天气等服务的 API,步骤如下:
示例:高德天气 API
-
申请密钥
前往高德开放平台,注册账号并创建应用,获取 API Key。 -
调用方式
在 UniApp 中通过uni.request发送请求:// 示例:根据城市名称查询天气 uni.request({ url: 'https://restapi.amap.com/v3/weather/weatherInfo', data: { key: '你的高德API_KEY', // 替换为实际 Key city: '北京', // 城市名称或编码 extensions: 'base' // base:返回实时天气;all:返回预报 }, success: (res) => { console.log('天气数据:', res.data); // 处理返回的天气信息 }, fail: (err) => { console.error('请求失败:', err); } });
返回数据示例(高德):
{
"status": "1",
"count": "1",
"info": "OK",
"lives": [{
"province": "北京市",
"city": "北京市",
"adcode": "110000",
"weather": "晴",
"temperature": "25",
"winddirection": "东南风",
"windpower": "≤3级"
}]
}
2. 使用 UniApp 的定位 + 天气 API 组合
-
获取用户位置
通过uni.getLocation获取经纬度:uni.getLocation({ type: 'wgs84', success: (loc) => { const { latitude, longitude } = loc; // 将经纬度传递给天气 API(需支持坐标查询) } }); -
根据坐标查询天气
部分天气 API(如和风天气)支持经纬度参数,直接请求即可。
注意事项:
- 域名白名单
在 UniApp 的manifest.json中配置request合法域名(如:https://restapi.amap.com)。 - 权限配置
若使用定位,需在 manifest 中声明定位权限,并在小程序管理后台开启对应权限。 - 免费额度
第三方 API 通常有每日调用次数限制,需注意控制频率。
通过以上步骤,即可快速集成天气功能。如有更复杂需求(如天气预报),可参考对应 API 文档调整参数。

