docs: 添加 ionicReady 方法和独立事件管理器文档
添加 ionicReady 方法的说明和使用示例 为 iOS 和 Android 平台添加独立事件管理器 ShutoEventManager 的使用文档 包括事件监听注册、移除和触发方法的详细说明
This commit is contained in:
@@ -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
|
#### navigate
|
||||||
@@ -169,8 +189,86 @@ cordova.plugins.ShutoApi.removeEventListener('navigate', handleNavigate);
|
|||||||
|
|
||||||
## 原生代码使用
|
## 原生代码使用
|
||||||
|
|
||||||
|
### 独立事件管理器(ShutoEventManager)
|
||||||
|
|
||||||
|
插件提供了独立的事件管理器 `ShutoEventManager`,用于在原生代码中进行事件的监听和触发。这与Cordova插件分离,可以在任何原生代码中使用。
|
||||||
|
|
||||||
|
#### 事件列表
|
||||||
|
|
||||||
|
- `ionicReady`: 当前端调用 `ionicReady()` 方法时触发
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### iOS
|
### 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原生代码中,可以通过以下方式触发事件:
|
在iOS原生代码中,可以通过以下方式触发事件:
|
||||||
|
|
||||||
```objective-c
|
```objective-c
|
||||||
@@ -233,6 +331,74 @@ NSDictionary* fetchData = @{
|
|||||||
|
|
||||||
### Android
|
### 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原生代码中,可以通过以下方式触发事件:
|
在Android原生代码中,可以通过以下方式触发事件:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
|
|||||||
Reference in New Issue
Block a user