docs: 添加 ionicReady 方法和独立事件管理器文档

添加 ionicReady 方法的说明和使用示例
为 iOS 和 Android 平台添加独立事件管理器 ShutoEventManager 的使用文档
包括事件监听注册、移除和触发方法的详细说明
This commit is contained in:
2026-01-21 17:14:05 +08:00
parent 40c6e4197f
commit 903e358c03

166
README.md
View File

@@ -40,6 +40,26 @@ cordova.plugins.ShutoApi.getUserInfo(
);
```
#### ionicReady()
标识前端应用已就绪。调用此方法后,原生代码中的事件管理器会触发 `ionicReady` 事件。
```javascript
cordova.plugins.ShutoApi.ionicReady();
```
建议在应用初始化完成后调用:
```javascript
document.addEventListener('deviceready', function() {
// 应用初始化逻辑...
// 通知原生代码前端已就绪
cordova.plugins.ShutoApi.ionicReady();
}, false);
```
### 事件
#### navigate
@@ -169,8 +189,86 @@ cordova.plugins.ShutoApi.removeEventListener('navigate', handleNavigate);
## 原生代码使用
### 独立事件管理器ShutoEventManager
插件提供了独立的事件管理器 `ShutoEventManager`用于在原生代码中进行事件的监听和触发。这与Cordova插件分离可以在任何原生代码中使用。
#### 事件列表
- `ionicReady`: 当前端调用 `ionicReady()` 方法时触发
---
### iOS
#### 1. 导入头文件
```objective-c
#import "ShutoEventManager.h"
```
#### 2. 注册事件监听
```objective-c
// 让类遵循 ShutoEventListener 协议
@interface YourViewController () <ShutoEventListener>
@end
@implementation YourViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 注册 ionicReady 事件监听
[[ShutoEventManager sharedInstance] addListenerForEvent:@"ionicReady" listener:self];
}
// 实现协议方法
- (void)onEvent:(NSString *)eventName data:(NSDictionary *)data {
if ([eventName isEqualToString:@"ionicReady"]) {
NSLog(@"前端已就绪,可以执行后续操作");
// 在这里处理前端就绪后的逻辑
}
}
- (void)dealloc {
// 移除所有事件监听
[[ShutoEventManager sharedInstance] removeListener:self];
}
@end
```
#### 3. 移除事件监听
```objective-c
// 移除特定事件的监听
[[ShutoEventManager sharedInstance] removeListenerForEvent:@"ionicReady" listener:self];
// 移除所有事件的监听
[[ShutoEventManager sharedInstance] removeListener:self];
```
#### 4. 触发自定义事件
```objective-c
// 触发事件(可带数据)
NSDictionary *eventData = @{
@"key": @"value",
@"timestamp": @([NSDate timeIntervalSinceReferenceDate])
};
[[ShutoEventManager sharedInstance] fireEvent:@"customEvent" data:eventData];
// 触发事件(不带数据)
[[ShutoEventManager sharedInstance] fireEvent:@"customEvent" data:nil];
```
#### 5. 通过插件实例触发事件Cordova相关
在iOS原生代码中可以通过以下方式触发事件
```objective-c
@@ -233,6 +331,74 @@ NSDictionary* fetchData = @{
### Android
#### 1. 导入类
```java
import cn.shuto.feishuapi.ShutoEventManager;
import cn.shuto.feishuapi.ShutoEventListener;
```
#### 2. 注册事件监听
```java
public class YourActivity extends AppCompatActivity implements ShutoEventListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 注册 ionicReady 事件监听
ShutoEventManager.getInstance().addListener("ionicReady", this);
}
// 实现接口方法
@Override
public void onEvent(String eventName, Map<String, Object> data) {
if ("ionicReady".equals(eventName)) {
Log.d("YourActivity", "前端已就绪,可以执行后续操作");
// 在这里处理前端就绪后的逻辑
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// 移除所有事件监听
ShutoEventManager.getInstance().removeListener(this);
}
}
```
#### 3. 移除事件监听
```java
// 移除特定事件的监听
ShutoEventManager.getInstance().removeListener("ionicReady", this);
// 移除所有事件的监听
ShutoEventManager.getInstance().removeListener(this);
```
#### 4. 触发自定义事件
```java
// 触发事件(可带数据)
Map<String, Object> eventData = new HashMap<>();
eventData.put("key", "value");
eventData.put("timestamp", System.currentTimeMillis());
ShutoEventManager.getInstance().fireEvent("customEvent", eventData);
// 触发事件(不带数据)
ShutoEventManager.getInstance().fireEvent("customEvent");
```
#### 5. 通过插件实例触发事件Cordova相关
在Android原生代码中可以通过以下方式触发事件
```java