抖音小程序|基于天气API实现天气预报功能

news/2024/12/20 2:49:36/

文章目录

  • 一、前言
          • 包含了功能
          • UI展示
  • 二、开发前的准备
  • 三、开发步骤
    • 1.app.js 配置
    • 2.pages/index.js
  • 演示二维码
  • 源码在百度网盘下载


一、前言

参考老版iPhone自带的天气预报APP。目前只有一个界面UI, 后续会更新出更多功能;

包含了功能
- 实况预报
- 未来48小时
- 未来一周的天气
- aqi空气质量刻度
- 自适应天气背景 (如:晴朗和阴天背景不一样)
UI展示
晴天情况阴天或下雨情况
在这里插入图片描述在这里插入图片描述

二、开发前的准备

  1. 注册抖音开放平台账号 ( https://developer.open-douyin.com/console?type=1 ), 创建一个小程序应用

  2. 下载小程序开发工具IDE ( https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/developer-instrument/overview/ )

  3. 配置小程序安全域名 添加域名 v0.yiketianqi.com 看下图
    在这里插入图片描述

  4. 注册天气API账号 ( https://tianqiapi.com/index/doc?version=v91 ), app.js里填写自己的appid和appsecret, 个人可以联系免费用,申请更多请求次数

三、开发步骤

1.app.js 配置

添加globalData变量

App({onLaunch: function () {},globalData: {apiurl:'https://v0.yiketianqi.com/',appid:'01622256',appsecret:'empDTjI8'}
})

2.pages/index.js

代码思路

  1. JS获取系统屏幕宽度, 用于计算aqi的指针刻度区间
  2. JS请求天气api接口解析json
  3. JS根据aqi数值, 计算aqi刻度
  4. JS计算背景图, 非晴就用阴天的背景图
  5. 天气数据渲染到模板 ttml

代码如下(示例):

const app = getApp()Page({data: {systemInfo:[],height: 0,background: 'https://xintai.xianguomall.com/skin/bg_sun.jpg',info: [],aircircle: 0, screenWidth: 0},// 获取系统信息, 用户获取屏幕宽度、高度等getSystemInfo() {const that = this;tt.getSystemInfo({success(res) {that.setData({systemInfo: res});console.log("getSystemInfo 调用成功", res);},fail(err) {console.log("getSystemInfo 调用失败", err);},complete(res) {console.log("getSystemInfo 调用完成", res);},});},onLoad(ops) {this.getSystemInfo();var _this = this;tt.request({url: app.globalData.apiurl + 'api?unescape=1&version=v91&appid=' + app.globalData.appid + '&appsecret=' + app.globalData.appsecret + '&ext=hours&cityid=&city=',data: {},method: 'POST',success: function (res) {console.log(res.data);// successif (res.statusCode == 200) {console.log('ajax _ success');// 计算aqi位置var aqi = res.data.data[0].air / 300;var circle = (_this.data.systemInfo.screenWidth - 0) * aqi;// 计算背景图, 非晴就用yinif (res.data.data[0].wea.match(RegExp(//))) {var bg = 'https://xintai.xianguomall.com/skin/bg_sun.jpg';} else {var bg = 'https://xintai.xianguomall.com/skin/bg_yin.jpg';}// output_this.setData({background: bg,aircircle: circle,info: res.data});console.log('circle: ' + circle)}}})},/*** 开启右上角分享功能, 不带这个函数无法分享*/onShareAppMessage() {}
})

该处使用的url网络请求的数据。


演示二维码

使用抖音app扫一扫
在这里插入图片描述

源码在百度网盘下载

链接: https://pan.baidu.com/s/11Pf422NGaJiBPKduZqfa_A?pwd=7wih 提取码: 7wih 复制这段内容后打开百度网盘手机App,操作更方便哦


http://www.ppmy.cn/news/59997.html

相关文章

2022 Hubei Provincial Collegiate Programming Contest B. Potion(easy version)

题目链接 Output For each testcase, if Twilight Sparkle couldn’t make the specific mixture, print a single integer: −1. Otherwise, print the minimum number of operation 1 to do that. Example input 3 3 5 1 1 2 6 1 1 5 7 1 1 output 4 3 -1 题目大意 题目保证…

C++11--线程库的认识

目录 thread 线程的构造方式 相关成员函数 join与detach 线程传参 互斥量mutex mutex Locks 原子性操作库 条件变量 thread 线程的构造方式 它是不支持拷贝构造,赋值的,但是可以支持移动构造,移动赋值。还可以直接创建无参的对象。 …

数据结构学习记录——堆的插入(堆的结构类型定义、最大堆的创建、堆的插入:堆的插入的三种情况、哨兵元素)

目录 堆的结构类型定义 最大堆的创建 堆的插入 堆的插入的三种情况 代码实现 哨兵元素 堆的结构类型定义 #define ElementType int typedef struct HNode* Heap; /* 堆的类型定义 */ struct HNode {ElementType* Data; /* 存储元素的数组 */int Size; /* 堆中…

Golang中context包基础知识详解

什么是context.Context&#xff1f; context.Context是Golang标准库提供的接口&#xff08;context包对此接口有多种实现&#xff09;&#xff0c;该接口提供了四个抽象法&#xff1a; type Context interface {Deadline() (deadline time.Time, ok bool)Done() <-chan st…

mssql修改排序规则

修改排序规则 在 Microsoft SQL Server 中&#xff0c;可以通过以下步骤来修改排序规则&#xff1a; 打开 SQL Server Management Studio&#xff08;SSMS&#xff09;&#xff0c;连接到 SQL Server 数据库实例。在“对象资源管理器”窗格中&#xff0c;右键单击数据库&…

vim编辑器

一、vi的使用 1. vi的三种模式 一般指令模式&#xff08;command mode&#xff09; 编辑模式&#xff08;insert mode&#xff09; 命令行命令模式&#xff08;command-line mode&#xff09; 2. 一般指令模式&#xff1a;光标移动 h或左方向键&#xff1a;光标向左移动一…

从传统Java应用到现代微服务,SpringBoot入门的基础指南

目录 一. 创建SpringBoot项目1.1 使用Spring Initializr快速构建项目1.2 手动创建springboot项目 二. SpringBoot入门案例解析2.1 依赖管理特性2.2 starter场景启动器2.3 引导类自动配置 三. REST风格四. 配置文件4.1 配置文件类型4.2 YAML文件的简介与使用4.3 Value与Configur…

数据库迁移同步 | 两地三中心到异地双活演变及关键技术探讨

两地三中心和异地多活都是分布式系统的关键技术&#xff0c;用于保证系统的高可用性和容错性。其中最关键的技术无疑是数据同步、同步防环和数据冲突解决。 异地容灾 & 两地三中心 两地三中心架构是一种分布式系统的架构模式&#xff0c;用于保证系统的高可用性和容错性。…