在调用接口页面的<script>部分增加如下配置。
import alarm from '@system.alarm'
或
var alarm = require("@system.alarm") 描述
设置闹钟,每次添加弹出提示框,同意后调用接口添加。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
hour | number | 是 | 设置起闹小时[0,23]。 |
minute | number | 是 | 设置起闹分钟[0,59]。 |
message | string | 否 | 闹钟名,字符长度不超过200。 |
vibrate | boolean | 否 | 是否震动,默认true。 |
days | array<number> | 否 | 重复周期。 默认是一次性闹钟。
|
ringtone | string | 否 | 铃声。 默认铃声随系统。 文件路径为数据文件或应用内的资源。 |
success | function | 否 | 成功的回调函数。 |
fail | function | 否 | 失败的回调函数。 |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行)。 |
示例代码
alarm.setAlarm({
hour: 14,
minute: 0,
message: '华为测试闹钟',
vibrate: false,
days: [0,1,2,3,4,5],
ringtone: '/Common/audio/20181211_155437.m4a',
success: function (res) {
console.log('handling success')
},
fail: function (erromsg, errocode) {
console.log('handling failed');
prompt.showToast({
message: 'set failed,msg:' + erromsg + ', code = ' + errocode
})
},
complete: function() {
console.log('handling complete' )
}
}) <template>
<div class="doc-page">
<div class="item-container">
<div class="item-content line">
<text class="title">service provider:</text>
<text>{{provider}}</text>
</div>
<div class="item-content">
<text class="title">Time:{{hour}} hours</text>
<slider class="slider" min="0" max="23" onchange="setAlarmHour"></slider>
</div>
<div class="item-content">
<text class="title">Time:{{minute}} minute</text>
<slider class="slider" min="0" max="59" onchange="setAlarmMinute"></slider>
</div>
<div class="item-content">
<text class="title">Alarm name</text>
<input class="message" onchange="setAlarmMsg" value="{{message}}"></input>
</div>
<div class="item-content line">
<text class="title">vibrate</text>
<switch class="switch" checked="true" onchange="switchAlarmVibrate"></switch>
</div>
<div class="item-content line">
<text class="title">days</text>
<switch class="switch" checked="false" onchange="switchAlarmRepeat"></switch>
</div>
<div class="item-container">
<input type="button" class="btn-blue" onclick="pickVideo" value="select a Ringtone"/>
</div>
<div class="item-container">
<input type="button" class="btn-blue" onclick="setAlarm" value="Set an Alarm"/>
</div>
</div>
</div>
</template>
<style>
.doc-page{
flex: 1;
flex-direction: column;
}
.item-container {
flex-direction: column;
margin-bottom: 50px;
margin-right: 60px;
margin-left: 60px;
}
.item-content {
flex-direction: column;
width: 100%;
padding: 10px;
}
.item-container .line {
flex-direction: row;
}
.item-content .title {
margin: 30px 0;
height: 30px;
}
.message {
width: 100%;
height: 60px;
border: 1px solid #3ec26a;
border-left-width: 0;
border-right-width: 0;
}
.switch {
margin-right: 30px;
}
.btn-blue {
background-color: #0faeff;
width: 100%;
height: 80px;
border-radius: 40px;
color: #fff;
font-size: 32px;
font-weight: 500;
}
</style>
<script>
import alarm from '@system.alarm'
import media from '@system.media'
import prompt from '@system.prompt'
export default {
private: {
componentName: 'Alarm',
hour: 0,
minute: 0,
message: 'quickapp alarm',
vibrate: true,
repeat: false,
days: [],
provider: '',
ringtone: ''
},
onInit () {
this.$page.setTitleBar({text: 'alarm'})
this.provider = alarm.getProvider()
},
setAlarm () {
const day = [new Date().getDay() - 1]
this.days = this.repeat ? [0, 1, 2, 3, 4, 5, 6] : day
alarm.setAlarm({
hour: this.hour,
minute: this.minute,
message: this.message,
vibrate: this.vibrate,
ringtone: this.ringtone,
days: this.days,
success() {
prompt.showToast({
message: 'set alarm success!'
})
},
fail(data, code) {
console.log('set alarm failed:code' + code.code)
},
})
},
pickVideo () {
const _this = this
media.pickFile({
success(data) {
prompt.showToast({
message: 'data.uri:' + data.uri
})
_this.ringtone = data.uri
},
fail(data, code) {
prompt.showToast({
message: 'select ringtone:' + code
})
}
})
},
setAlarmHour (e) {
this.hour = e.progress
},
setAlarmMinute (e) {
this.minute = e.progress
},
setAlarmMsg (e) {
this.message = e.value
},
switchAlarmVibrate (e) {
this.vibrate = e.checked
},
switchAlarmRepeat (e) {
this.repeat = e.checked
}
}
</script> 效果图如下:
