Skip to main content
版本:v3+

set

API_LEVEL 3.0 开始支持,API 兼容性请参考 API_LEVEL。

支持持久化的定时器,用来唤醒小程序的页面。

信息

权限代码: device:os.alarm

类型​

function set(option: Option): Result

参数​

Option​

属性类型必填默认值说明API_LEVEL
appidnumber否-小程序的 App ID,默认当前小程序 ID3.0
urlstring是-唤醒小程序的文件路径,支持「设备应用服务」3.0
timenumber否-定时器执行的时间,UTC 时间戳,单位秒,该字段优先级高于 delay,每次调用必须传入 time 和 delay 其中的一个参数3.0
delaynumber否-基于当前时间延迟多少秒后执行,单位秒,每次调用必须传入 time 和 delay 其中的一个参数3.0
paramstring否-传递给 app.js 生命周期 onCreate 中的参数3.0
storeboolean否false定时器是否需要持久化存储(设备重启后依然能够成功执行)3.0
repeat_typenumber否-定时器的重复类型,参考定时器定期重复常量3.0
repeat_periodnumber否REPEAT_MINUTE当 repeat_type 设置为 REPEAT_MINUTE、REPEAT_HOUR、REPEAT_DAY 时生效,与 repeat_duration 配合使用,设置一个重复周期,一个重复周期以当前的 repeat_type 为单位,包含 repeat_period 次,提醒前 repeat_duration 次3.0
repeat_durationnumber否1当 repeat_type 设置为 REPEAT_MINUTE、REPEAT_HOUR、REPEAT_DAY 时生效,定时器一个周期内提醒的次数,与 repeat_duration 配合使用,一个周期以当前的 repeat_type 为单位,包含 repeat_period 次,提醒前 repeat_duration 次3.0
week_daysnumber否-当 repeat_type 为 REPEAT_WEEK 时生效,可以自定义一周内重复哪几天,参考定时器周常量3.0
start_timenumber否-重复提醒开始的时间,UTC 秒,重复提醒只在重复时间段内生效3.0
end_timenumber否-重复提醒结束的时间,UTC 秒,重复提醒只在重复时间段内生效3.0

Result​

类型说明
number创建定时器返回的 id,0 为无效 ID,表示定时器创建失败,支持持久化的定时器在系统重启后,ID 仍保持不变

常量​

定时器定期重复常量​

常量说明API_LEVEL
REPEAT_ONCE重复一次3.0
REPEAT_MINUTE指定重复周期为分钟3.0
REPEAT_HOUR指定重复周期为小时3.0
REPEAT_DAY指定重复周期为天3.0
REPEAT_WEEK指定重复周期为周3.0
REPEAT_MONTH指定重复周期为月3.0
REPEAT_YEAR指定重复周期为年3.0

定时器周常量​

常量说明API_LEVEL
WEEK_MON星期一3.0
WEEK_TUE星期二3.0
WEEK_WED星期三3.0
WEEK_THU星期四3.0
WEEK_FRI星期五3.0
WEEK_SAT星期六3.0
WEEK_SUN星期日3.0

代码示例​

// At a certain time each day
import { set, REPEAT_DAY } from '@zos/alarm'

const option = {
url: 'pages/index.js',
time: 12345678,
repeat_type: REPEAT_DAY,
}
const id = set(option)

// Every Monday and Wednesday
import { set, REPEAT_WEEK, WEEK_MON, WEEK_WED } from '@zos/alarm'

const option = {
url: 'pages/index.js',
time: 12345678,
repeat_type: REPEAT_WEEK,
week_days: WEEK_MON | WEEK_WED,
}
const id = set(option)

// Reminder every 21 days
import { set, REPEAT_DAY } from '@zos/alarm'

const option = {
url: 'pages/index.js',
time: 12345678,
repeat_type: REPEAT_DAY,
repeat_period: 20,
repeat_duration: 1,
}
const id = set(option)