docs: 添加 syncTodo 事件文档和示例代码

在 README.md 中添加 syncTodo 事件的说明文档和示例代码,包括事件数据格式和使用方法。
This commit is contained in:
2026-01-22 15:09:10 +08:00
parent 4dbb2d615e
commit c4de1b4bbc

View File

@@ -75,6 +75,12 @@ document.addEventListener('deviceready', function() {
**事件数据:**
- 无参数(前端从本地获取日志数据)
#### syncTodo
当后台需要前端同步待办事项时触发。前端接收用户信息参数,同步待办事项数据后通过 callback 返回结果。
**事件数据:**
- `userInfo`: 用户信息对象,包含用户标识等信息
## 事件监听示例
### 基本用法(无回调事件)
@@ -99,14 +105,14 @@ cordova.plugins.ShutoApi.addEventListener('navigate', function(data) {
// 监听日志上传事件(需要回调)
cordova.plugins.ShutoApi.addEventListener('uploadLog', function(_, callback) {
console.log('触发日志上传');
// 从本地存储获取日志数据
var logData = {
logs: JSON.parse(localStorage.getItem('appLogs') || '[]'),
timestamp: Date.now(),
appVersion: '1.0.0'
};
// 模拟异步上传(使用 setTimeout 模拟网络延迟)
setTimeout(function() {
try {
@@ -117,12 +123,12 @@ cordova.plugins.ShutoApi.addEventListener('uploadLog', function(_, callback) {
recordId: 'log_' + Date.now(),
count: logData.logs.length
};
console.log('日志上传成功:', uploadResult);
// 上传成功后清空本地日志
localStorage.removeItem('appLogs');
// 返回成功结果
callback(uploadResult);
} catch (error) {
@@ -132,6 +138,38 @@ cordova.plugins.ShutoApi.addEventListener('uploadLog', function(_, callback) {
}
}, 1500); // 模拟 1.5 秒的网络延迟
});
// 监听待办事项同步事件(需要回调)
cordova.plugins.ShutoApi.addEventListener('syncTodo', function(userInfo) {
console.log('触发待办事项同步:', userInfo);
// 模拟异步同步待办事项(使用 setTimeout 模拟网络延迟)
setTimeout(function() {
try {
// 模拟从服务器获取待办事项数据
var todoList = [
{ id: 1, title: '完成项目文档', completed: false, priority: 'high' },
{ id: 2, title: '参加团队会议', completed: true, priority: 'medium' },
{ id: 3, title: '代码审查', completed: false, priority: 'high' }
];
var syncResult = {
success: true,
syncedAt: new Date().toISOString(),
userId: userInfo.userId,
todoList: todoList,
totalCount: todoList.length,
completedCount: todoList.filter(function(todo) { return todo.completed; }).length
};
console.log('待办事项同步成功:', syncResult);
} catch (error) {
console.error('待办事项同步失败:', error.message);
// 返回错误信息
callback(null, error.message);
}
}, 1000); // 模拟 1 秒的网络延迟
});
```
### 带回调的事件