更新记录

1.0.0(2023-08-18)

实现iOS平台日历事件提醒功能


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.8.7,Android:不确定,iOS:9 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
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 删除日历事件提醒失败

隐私、权限声明

1. 本插件需要申请的系统权限列表:

NSCalendarsUsageDescription 日历权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问