当前位置: 首页 > article >正文

微信小程序之历史上的今天

微信小程序之历史上的今天

需求描述

今天我们再来做一个小程序,主要是搜索历史上的今天发生了哪些大事,结果如下
当天的历史事件或者根据事件选择的历史事件的列表:
在这里插入图片描述
点击某个详细的历史事件以后看到详细信息:
在这里插入图片描述

API申请和小程序设置
API申请
第一步:完整账号注册
我们需要来到如下网站,注册账号:万维易源
第二步:账号注册完成以后,点击右上角的控制台信息。
在这里插入图片描述
第三步:在控制台界面选择接口使用者-appKey管理
在这里插入图片描述
第四步:在appKey管理界面,点击添加按钮,在应用中输入自己想要的名字,白名单非必填,可调用接口搜索手机可以查询到对应的如下信息,选择以后点击“立即创建”。

在这里插入图片描述
第五步:设置以后,我们便可以看到我们常见的appKey了。

在这里插入图片描述

小程序设置

在小程序中,我们应用的API不是随便能够使用的,是需要在小程序中进行设置才能够使用。
第一步:登录小程序管理后台
第二步:在小程序后台点击管理-开发管理中的开发设置
在这里插入图片描述
第三步:在开发设置中鼠标滚轮往下拉找到服务器域名设置,然后点击右侧修改按钮,在request合法域名中讲我们设置的需要的api加入进去,结果如下
在这里插入图片描述
至此,我们的API Key的申请以及小程序的设置已经完成,我们可以正式开发我们的业务。

业务实现

代码框架

我们的业务代码框架如下
在这里插入图片描述

代码实现

app.json实现

总体基调设置如下

{
    "pages": [
    "pages/index/index",
    "pages/details/details",
    "pages/logs/logs" 
    ],
    "window": {
    "backgroundTextStyle": "dark",
    "navigationBarBackgroundColor": "#FFFFFF",
    "navigationBarTitleText": "历史上的今天",
    "navigationBarTextStyle": "black"
    },
    "sitemapLocation": "sitemap.json"
}
util.js实现
const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return [month, day].map(formatNumber).join('').toString()
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : '0' + n
}

module.exports = {
  formatTime: formatTime
}
index.wxml实现

界面布局实现

<!--pages/index/index.wxml-->
<view class='hot'>
    <view class='button'>
    <button bindtap='bindSearch'>历史上的今天{{timesTamp}}</button>
    </view>
    <view class="dateChoose">
    <view>时间选择:</view>
    <picker mode="date" value="{{timesTamp}}" bindchange="bindchange">
    <view>
    <text>{{timesTamp}}</text> 
    </view>
    </picker>
    </view>
    <view class="news" wx:for="{{arrayResult}}" wx:key="index">
    <navigator url="/pages/details/details?title={{item.title}}&content={{item.content}}&img={{item.img}}">
    <text class="title">{{index + 1}}.{{item.title}}</text>
    </navigator>
    </view>
</view>
index.wxss实现

界面样式实现

/* pages/index/index.wxss */
.hot {
    width: 90%;
    margin: 0 auto;
    font-size: 30rpx;
    overflow: scroll;
}
.dateChoose{
    font-size: large;
    font-weight: bolder;
    display: flex;
    flex-flow: row nowrap;
    padding: 10rpx;
}

.title{
    font-size: large;
    font-weight: bolder;
}

.news{
    border: 1rpx solid #eee;
    padding: 15rpx 0;
}

.button button {
    background-color: #ff0000;
    color: white;
}
index.js实现

业务实现如下

// pages/index/index.js
const util = require('../../utils/util.js');
Page({

    /**
     * 页面的初始数据
     */
    data: {
    //密钥
    sign: 'APIKEY',
    //当前查询的时间
    timesTamp : util.formatTime(new Date()),
    //结果
    arrayResult: []
    },

  
    bindchange: function (e) {
    var that = this;
    var data = e.detail.value;
    var finallDate = data.split('-');
    console.log(finallDate[1] + finallDate[2]);
    that.setData({
    timesTamp: finallDate[1] + finallDate[2],
    });
    },

    //查询历史
    bindSearch : function (e) {
    var that = this;
    console.log(that.data.timesTamp);

    //请求
    wx.request({
    
    url: 'https://route.showapi.com/119-42?appKey=' + that.data.sign + '&needContent=1&date=' + that.data.timesTamp,
    
    success : function (e) {
    console.log(e.data.showapi_res_body.list);
    //获取热搜新闻
    var result = e.data.showapi_res_body.list;
    console.log(result);
    //判断是否返回消息
    if (result.showapi_res_code == -1004) {
    that.setData({
    ret_code: '接口返回错误',
    });
    } else {
    that.setData({
    arrayResult: result,
    });
    }
    }
    })

    },


    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})
details.wxml实现

界面布局实现

<!--pages/details/details.wxml-->
<view>
    <text class="title">{{title}}</text>
</view>
<view>
    <text class="content">{{content}}</text>
</view>
<view>
    <image class="image" src="{{img}}" mode="widthFix"/>
</view>
details.wxss实现

界面样式实现

/* pages/details/details.wxss */
.title{
    font-size: large;
    font-weight: bolder;
    text-align: center;
    padding: 10rpx;
    margin: 20rpx;
}
.content{
    font-size: small;
    padding: 10rpx;
    margin: 30rpx;
}
.image{
    width: 100%;
    justify-content: center;
}
details.js实现

业务实现如下

// pages/details/details.js
Page({

    /**
     * 页面的初始数据
     */
    data: {

    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
    this.setData({
    title : options.title,
    content : options.content,
    img : options.img
    });
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})

至此我们完成历史上今天的开发内容。


http://www.kler.cn/a/471377.html

相关文章:

  • 海陵HLK-TX510人脸识别模块 stm32使用
  • MySQL和Hive中的行转列、列转行
  • 深度学习:探索人工智能的未来
  • 大数据-268 实时数仓 - ODS层 将 Kafka 中的维度表写入 DIM
  • JVM vs JDK vs JRE
  • unity学习8:unity的基础操作 和对应shortcut
  • 如何监控批量写入的性能瓶颈?
  • 快速上手:采用Let‘sEncrypt免费SSL证书配置网站Https (示例环境:Centos7.9+Nginx+Let‘sEncrypt)
  • 屏幕显示技术再突破!海信RGB- Mini LED,让色彩“活”起来
  • 【计算机操作系统:三、操作系统的用户接口】
  • nginx-灰度发布策略(基于cookie)
  • 02.02、返回倒数第 k 个节点
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验七----城市三维建模与分析(超超超详细!!!)
  • Docker镜像下载链接-开发工具集
  • 交换机划分Vlan配置
  • Objective-C语言的数据结构
  • 添加系统级res资源包
  • Apache Paimon-实时数据湖
  • pyhton 掩码 筛选显示
  • Python中的时间管理模块:whenever
  • nuxt3发请求
  • 秋叶大神中文版Stable Diffusion下载安装使用教程
  • PHP二维数组去除重复值
  • 9. C 语言 循环控制结构详解
  • Flutter 鸿蒙化 flutter和鸿蒙next混和渲染
  • 图漾相机基础操作