77 lines
1.7 KiB
Markdown
77 lines
1.7 KiB
Markdown
---
|
||
title: 事件回调
|
||
---
|
||
|
||
# 运行过程中 runtime 的事件回调
|
||
|
||
## state
|
||
|
||
- 消息类型
|
||
|
||
```
|
||
{"state”:”starting”} index加载成功
|
||
{"state”:”running”} js加载成功,开始运行游戏
|
||
```
|
||
|
||
- 注册监听(以Android为例)
|
||
|
||
```java
|
||
private void setExternalInterfaces() {
|
||
// handle the state change Event during the running
|
||
nativeAndroid.setExternalInterface("@onState", new INativePlayer.INativeInterface() {
|
||
@Override
|
||
public void callback(String message) {
|
||
String str = "Native get onState message: ";
|
||
|
||
str += message;
|
||
Log.e(TAG, str);
|
||
}
|
||
});
|
||
}
|
||
```
|
||
|
||
## error
|
||
|
||
- 消息类型
|
||
|
||
```
|
||
{"error":"load"} index加载失败
|
||
{"error":"start"} js加载失败
|
||
{"error”:”stopRunning”} 运行过程中出现异常,中断了引擎的心跳(一般会先抛出jsError)
|
||
```
|
||
|
||
- 注册监听(以Android为例)
|
||
|
||
```java
|
||
private void setExternalInterfaces() {
|
||
// handle the error Event during the running
|
||
nativeAndroid.setExternalInterface("@onError", new INativePlayer.INativeInterface() {
|
||
@Override
|
||
public void callback(String message) {
|
||
String str = "Native get onError message: ";
|
||
|
||
str += message;
|
||
Log.e(TAG, str);
|
||
}
|
||
});
|
||
```
|
||
|
||
## jsError
|
||
|
||
- 注册监听(以Android为例)
|
||
|
||
```java
|
||
private void setExternalInterfaces() {
|
||
// handle the error Event during the running
|
||
nativeAndroid.setExternalInterface("@onJSError", new INativePlayer.INativeInterface() {
|
||
@Override
|
||
public void callback(String message) {
|
||
// 参数为堆栈信息
|
||
String str = "Native get onJSError message: ";
|
||
|
||
str += message;
|
||
Log.e(TAG, str);
|
||
}
|
||
});
|
||
```
|