小程序是一种基于微信平台的应用,用户可以在微信内直接使用,无需下载安装。闹钟提醒应用是指用户可以设置闹钟,到达设定的时间时会发出提醒。
本文将使用微信小程序开发制作一个简易的闹钟提醒应用。主要包括以下功能:
- 设置闹钟时间
- 闹钟提醒功能
- 取消闹钟功能
首先,我们需要新建一个微信小程序项目。打开微信开发者工具,点击新建项目,填写项目名称、项目目录和 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()
}
})
到此为止,我们已经完成了一个简易的闹钟提醒应用。用户可以在首页点击"设置闹钟时间"按钮,跳转到设置闹钟时间页面,选择闹钟时间并点击"确定"按钮,返回到首页并显示闹钟时间。用户还可以点击"开始提醒"按钮,在设定的时间到达时播放提醒音乐,并可以点击"取消提醒"按钮停止提醒。
以上就是使用微信小程序开发制作一个简易的闹钟提醒应用的代码案例。希望对您有所帮助!