docs: 添加 ionicReady 方法和独立事件管理器文档
添加 ionicReady 方法的说明和使用示例 为 iOS 和 Android 平台添加独立事件管理器 ShutoEventManager 的使用文档 包括事件监听注册、移除和触发方法的详细说明
This commit is contained in:
166
README.md
166
README.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user