使用微信小程序开发制作一个简易的闹钟提醒应用

小程序是一种基于微信平台的应用,用户可以在微信内直接使用,无需下载安装。闹钟提醒应用是指用户可以设置闹钟,到达设定的时间时会发出提醒。

本文将使用微信小程序开发制作一个简易的闹钟提醒应用。主要包括以下功能:

  1. 设置闹钟时间
  2. 闹钟提醒功能
  3. 取消闹钟功能

首先,我们需要新建一个微信小程序项目。打开微信开发者工具,点击新建项目,填写项目名称、项目目录和 AppID,点击确定。

项目目录结构如下:

- pages
  - index
    - index.js
    - index.wxml
    - index.wxss
  - alarm
    - alarm.js
    - alarm.wxml
    - alarm.wxss
  - notify
    - notify.js
    - notify.wxml
    - notify.wxss
- app.js
- app.json
- app.wxss

接下来,我们从设置闹钟时间功能开始实现。在index页面的index.wxml中添加一个选择时间的按钮,点击后跳转到设置闹钟时间页面。

<button bindtap="goToAlarmPage">设置闹钟时间</button>

index页面的index.js中添加一个goToAlarmPage函数,用于跳转到设置闹钟时间页面。

Page({
  // 跳转到设置闹钟时间页面
  goToAlarmPage: function () {
    wx.navigateTo({
      url: '/pages/alarm/alarm'
    })
  }
})

现在我们来实现设置闹钟时间页面。在alarm页面的alarm.wxml中添加一个时间选择器和确认按钮,用户可以通过时间选择器选择闹钟时间,点击确认按钮后返回到首页,并将选中的时间传递给首页。

<view>
  <picker mode="time" bindchange="timeChange"></picker>
  <button bindtap="setAlarm">确定</button>
</view>

alarm页面的alarm.js中添加一个timeChange函数,用于监听时间选择器的选中事件,并将选中的时间保存到data中。

Page({
  data: {
    alarmTime: ''
  },

  // 选中时间变化
  timeChange: function (e) {
    this.setData({
      alarmTime: e.detail.value
    })
  },

  // 设置闹钟
  setAlarm: function () {
    // 将选中的时间传递给首页
    wx.redirectTo({
      url: '/pages/index/index?alarmTime=' + this.data.alarmTime
    })
  }
})

index页面的index.js中添加一个onLoad函数,用于接收从设置闹钟时间页面传递过来的时间参数,并将其保存到data中。

Page({
  data: {
    alarmTime: ''
  },

  onLoad: function (options) {
    if (options.alarmTime) {
      this.setData({
        alarmTime: options.alarmTime
      })
    }
  },
})

接下来,我们来实现闹钟提醒功能。在index页面的index.wxml中添加一个显示闹钟时间和一个开始提醒的按钮。

<text>闹钟时间:{{alarmTime}}</text>
<button bindtap="startAlarm">开始提醒</button>

index页面的index.js中添加一个startAlarm函数,用于设置闹钟提醒的定时器,并在设定的时间到达时播放提醒音乐。

Page({
  data: {
    alarmTime: ''
  },

  startAlarm: function () {
    var alarmTime = this.data.alarmTime
    var now = new Date()
    var alarm = new Date(now.getFullYear(), now.getMonth(), now.getDate(), parseInt(alarmTime.split(':')[0]), parseInt(alarmTime.split(':')[1]), 0)

    // 计算当前时间与闹钟时间的时间差
    var diff = alarm.getTime() - now.getTime()

    // 如果时间差小于0,则说明闹钟时间已过,提醒无效
    if (diff < 0) {
      wx.showToast({
        title: '闹钟时间已过',
        icon: 'none'
      })
      return
    }

    // 设置定时器,在闹钟时间到达时播放提醒音乐
    setTimeout(function () {
      wx.playBackgroundAudio({
        dataUrl: 'https://example.com/alarm.mp3',
        title: '闹钟提醒',
        coverImgUrl: 'https://example.com/alarm.jpg'
      })
    }, diff)
  }
})

最后,我们来实现取消闹钟功能。在index页面的index.wxml中添加一个取消提醒的按钮。

<button bindtap="cancelAlarm">取消提醒</button>

index页面的index.js中添加一个cancelAlarm函数,用于停止闹钟提醒的定时器。

Page({
  data: {
    alarmTime: '',
    alarmTimer: null
  },

  startAlarm: function () {
    // 判断是否已经设置了闹钟
    if (!this.data.alarmTime) {
      wx.showToast({
        title: '请先设置闹钟',
        icon: 'none'
      })
      return
    }

    var alarmTime = this.data.alarmTime
    var now = new Date()
    var alarm = new Date(now.getFullYear(), now.getMonth(), now.getDate(), parseInt(alarmTime.split(':')[0]), parseInt(alarmTime.split(':')[1]), 0)

    // 计算当前时间与闹钟时间的时间差
    var diff = alarm.getTime() - now.getTime()

    // 如果时间差小于0,则说明闹钟时间已过,提醒无效
    if (diff < 0) {
      wx.showToast({
        title: '闹钟时间已过',
        icon: 'none'
      })
      return
    }

    // 设置定时器,在闹钟时间到达时播放提醒音乐
    this.data.alarmTimer = setTimeout(function () {
      wx.playBackgroundAudio({
        dataUrl: 'https://example.com/alarm.mp3',
        title: '闹钟提醒',
        coverImgUrl: 'https://example.com/alarm.jpg'
      })
    }, diff)
  },

  cancelAlarm: function () {
    // 停止定时器
    clearTimeout(this.data.alarmTimer)
    wx.stopBackgroundAudio()
  }
})

到此为止,我们已经完成了一个简易的闹钟提醒应用。用户可以在首页点击"设置闹钟时间"按钮,跳转到设置闹钟时间页面,选择闹钟时间并点击"确定"按钮,返回到首页并显示闹钟时间。用户还可以点击"开始提醒"按钮,在设定的时间到达时播放提醒音乐,并可以点击"取消提醒"按钮停止提醒。

以上就是使用微信小程序开发制作一个简易的闹钟提醒应用的代码案例。希望对您有所帮助!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值