更新记录
1.0.0(2023-08-18)
实现iOS平台日历事件提醒功能
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.8.7,Android:不确定,iOS:9,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
xwe-calendar(日历事件提醒插件)
HBuilder X 版本支持
版本支持(只按较新版本做支持,因为uts较低版本可能一些语法无法兼容) |
---|
3.8.7(测试通过)、3.8.12 Alpha(开发插件的版本) |
语言版本兼容
vue2 | vue3 |
---|---|
√ | √ |
平台兼容
App-Android | App-iOS |
---|---|
x | √(9-16) |
权限说明文档
【ios】
未内置注册权限:下面的权限是要自己在项目中配置的,如下:
NSCalendarsUsageDescription 日历权限
接口使用文档
-
引入插件和实例化
【用的ts语法,非ts自行转换】
import {XWECalendar} from '@/uni_modules/xwe-calendar';
let xweCalendar:XWECalendar = new XWECalendar();
-
初始化插件
xweCalendar.initCalendar(callback)
说明:插件必须先初始化,否则无法使用日历相关的api
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回初始化的状态 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
-
请求日历权限
xweCalendar.requestAccess(callback)
说明:权限不满足无法使用日历相关的api
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回日历权限的状态 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
-
创建日历事件提醒
xweCalendar.createCalendarEvent(option)
option结构说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
title | string | 是 | 事件标题 | |
notes | string | 是 | 事件备注 | |
repeatReminder | number/null | 否 | 事件重复的时间,如果为null则不会设置事件重复 | |
repeatFrequency | number | 是 | 事件重复的频率,0-天、1-周、2-月、3-年 | |
reminderTime | number/null | 否 | 事件提前提醒的时间,如果为null则不会设置提醒 | |
startYear | number | 是 | 事件开始时间-年 | |
startMonth | number | 是 | 事件开始时间-月 | |
startDay | number | 是 | 事件开始时间-日 | |
startHour | number | 是 | 事件开始时间-时 | |
startMinute | number | 是 | 事件开始时间-分 | |
endYear | number | 是 | 事件结束时间-年 | |
endMonth | number | 是 | 事件结束时间-月 | |
endDay | number | 是 | 事件结束时间-日 | |
endHour | number | 是 | 事件结束时间-时 | |
endMinute | number | 是 | 事件结束时间-分 | |
callback | function/null | 否 | 创建日历事件提醒回调,会返回状态和创建成功的数据,状态码详情查看 【code状态码说明】 |
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回日历创建的状态和创建成功的数据 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
data | string | 创建成功的数据和创建失败的错误信息,创建成功(返回的是转成字符串的对象,需要用JSON.parse(data)转换一下),创建失败(返回的是一个字符串错误信息) |
data结构说明
属性 | 类型 | 说明 |
---|---|---|
title | string | 事件标题 |
notes | string | 事件备注 |
repeatReminder | number/null | 事件重复的时间,如果为null则不会设置事件重复 |
repeatFrequency | number | 事件重复的频率,0-天、1-周、2-月、3-年 |
reminderTime | number/null | 事件提前提醒的时间,如果为null则不会设置提醒 |
startYear | number | 事件开始时间-年 |
startMonth | number | 事件开始时间-月 |
startDay | number | 事件开始时间-日 |
startHour | number | 事件开始时间-时 |
startMinute | number | 事件开始时间-分 |
endYear | number | 事件结束时间-年 |
endMonth | number | 事件结束时间-月 |
endDay | number | 事件结束时间-日 |
endHour | number | 事件结束时间-时 |
endMinute | number | 事件结束时间-分 |
eventIdentifier | string | 事件的标识符,这个标识符是很重要的,删除事件提醒是需要这个标识符去删除的 |
调用代码示例
【用的ts语法,非ts自行转换】
xweCalendar.createCalendarEvent({
title:'事件提醒标题',
notes:'事件提醒备注',
repeatReminder:5,
repeatFrequency:0,
reminderTime:0,
startYear:2023,
startMonth:8,
startDay:17,
startHour:11,
startMinute:5,
endYear:2023,
endMonth:8,
endDay:17,
endHour:11,
endMinute:10,
callback:(callBackOption:Object) => {
if(callBackOption.code == 4){
let dataObj:Object = callBackOption.data ? JSON.parse(callBackOption.data) : {};
console.log('创建事件-成功',callBackOption,dataObj);
}
if(callBackOption.code == -4){
console.log('创建事件-失败',callBackOption);
}
}
});
-
获取创建的日历事件提醒
xweCalendar.getCalendarEvent(option)
option结构说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
startYear | number | 是 | 事件开始时间-年 | |
startMonth | number | 是 | 事件开始时间-月 | |
startDay | number | 是 | 事件开始时间-日 | |
startHour | number | 是 | 事件开始时间-时 | |
startMinute | number | 是 | 事件开始时间-分 | |
endYear | number | 是 | 事件结束时间-年 | |
endMonth | number | 是 | 事件结束时间-月 | |
endDay | number | 是 | 事件结束时间-日 | |
endHour | number | 是 | 事件结束时间-时 | |
endMinute | number | 是 | 事件结束时间-分 | |
callback | function/null | 否 | 获取创建的日历事件提醒回调,会返回状态和创建的日历提醒数据,状态码详情查看 【code状态码说明】 |
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回日历获取的状态和创建的日历提醒数据 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
data | string/undefined | 获取创建的日历事件数据,返回的是转成字符串的对象,需要用JSON.parse(data)转换一下,转换得到一个数组对象Array\<Object> |
data数组对象(Array\<Object>)结构说明
属性 | 类型 | 说明 |
---|---|---|
title | string | 事件标题 |
notes | string | 事件备注 |
repeatReminder | number/null | 事件重复的时间,如果为null则不会设置事件重复 |
repeatFrequency | number | 事件重复的频率,0-天、1-周、2-月、3-年 |
reminderTime | number/null | 事件提前提醒的时间,如果为null则不会设置提醒 |
startYear | number | 事件开始时间-年 |
startMonth | number | 事件开始时间-月 |
startDay | number | 事件开始时间-日 |
startHour | number | 事件开始时间-时 |
startMinute | number | 事件开始时间-分 |
endYear | number | 事件结束时间-年 |
endMonth | number | 事件结束时间-月 |
endDay | number | 事件结束时间-日 |
endHour | number | 事件结束时间-时 |
endMinute | number | 事件结束时间-分 |
eventIdentifier | string | 事件的标识符,这个标识符是很重要的,删除事件提醒是需要这个标识符去删除的 |
调用代码示例
【用的ts语法,非ts自行转换】
xweCalendar.getCalendarEvent({
startYear:2023,
startMonth:8,
startDay:17,
startHour:11,
startMinute:5,
endYear:2023,
endMonth:8,
endDay:17,
endHour:11,
endMinute:10,
callback:(callBackOption:Object) => {
if(callBackOption.code == 5){
let dataObj:Object = callBackOption.data ? JSON.parse(callBackOption.data) : {};
console.log('获取事件数据-成功',callBackOption,dataObj);
}
if(callBackOption.code == -5){
console.log('获取事件数据-失败',callBackOption);
}
}
});
-
删除日历事件提醒
xweCalendar.removeCalendarEvent(option)
option结构说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
eventIdentifier | number | 是 | 事件的标识符 | |
callback | function/null | 否 | 获取创建的日历事件提醒回调,会返回状态和创建的日历提醒数据,状态码详情查看 【code状态码说明】 |
callback返回参数说明
属性 | 类型 | 说明 |
---|---|---|
callbackOption | Object | 返回日历删除的状态 |
callbackOption结构说明
属性 | 类型 | 说明 |
---|---|---|
code | number | 状态返回,详情查看 【code状态码说明】 |
message | string | 状态提示消息,详情查看 【code状态码说明】 |
data | string/undefined | 删除失败的错误信息 |
调用代码示例
【用的ts语法,非ts自行转换】
xweCalendar.removeCalendarEvent({
eventIdentifier:'738691FC-9785-40F2-BCF8-38E236B09280:52732A2F-403B-4E50-9D9A-F7AF4B85CFE1',
callback:(callBackOption:Object) => {
if(callBackOption.code == 6){
console.log('删除事件-成功',callBackOption);
}
if(callBackOption.code == -6){
console.log('删除事件-失败',callBackOption);
}
}
});
code状态码说明
code | 类型 | message | 说明 | 平台差异 |
---|---|---|---|---|
0 | number | Calendar permission success | 日历权限满足 | |
1 | number | Init success | 初始化成功 | |
-1 | number | Not init | 未初始化 | |
-2 | number | Calendar permission refuse | 拒绝了日历权限 | |
-3 | number | Calendar permission unregistered | 未注册日历权限 | |
4 | number | Create calendar success | 创建日历事件提醒成功 | |
-4 | number | Create calendar failed | 创建日历事件提醒失败 | |
5 | number | Get calendar success | 获取日历事件提醒成功 | |
-5 | number | Get calendar failed | 获取日历事件提醒失败 | |
6 | number | Remove calendar success | 删除日历事件提醒成功 | |
-6 | number | Remove calendar failed | 删除日历事件提醒失败 |