docs: 添加 syncTodo 事件文档和示例代码
在 README.md 中添加 syncTodo 事件的说明文档和示例代码,包括事件数据格式和使用方法。
This commit is contained in:
48
README.md
48
README.md
@@ -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 秒的网络延迟
|
||||
});
|
||||
```
|
||||
|
||||
### 带回调的事件
|
||||
|
||||
Reference in New Issue
Block a user