niapp 原生插件Js层的类怎么接收到Activity控件的监听事件并返回呢?如下图的描述:
解决了,写了一个接口,弄了一个全局的类,监听全局类的字段,就可以了
//接口
public interface BroadListener {
public void onSuccess();
public void onFail(String msg);
}
//类
public class PlayEndListenner extends Application {
private BroadListener broadListener;
private static PlayEndListenner dataInstance;
private int isPlayEnd = 0;//是否播放结束
private PlayEndListenner(){
}
public static PlayEndListenner getInstance(){
if (null == dataInstance){
dataInstance = new PlayEndListenner();
}
return dataInstance;
}
public void setBroadListener(BroadListener broadListener){
this.broadListener = broadListener;
}
public void setIsPlayEnd(int isPlayEnd) {
this.isPlayEnd = isPlayEnd;
if (null != broadListener){
if (isPlayEnd == 1){
broadListener.onSuccess();
}else{
broadListener.onFail("收到回复失败");
}
}
}
public int getIsPlayEnd() {
return isPlayEnd;
}
}
//uniapp 调用播放结束
@UniJSMethod (uiThread = true)
public void playerEnded( UniJSCallback callback){
final UniJSCallback callback1 = callback;
PlayEndListenner.getInstance().setBroadListener(new BroadListener() {
@Override
public void onSuccess() {
System.out.println("播放结束");
int re = PlayEndListenner.getInstance().getIsPlayEnd();
PlayEndListenner.getInstance().setIsPlayEnd(0);
Data.getInstance().setIsPlay(0);//更新状态为 播放
if(callback1 != null) {
JSONObject data = new JSONObject();
//data.put("code", "success我是原生返回的:播放是否结束状态");
data.put("palyEnd",PlayEndListenner.getInstance().getIsPlayEnd());
//callback1.invokeAndKeepAlive(data);
callback1.invokeAndKeepAlive(data);
}
}
@Override
public void onFail(String msg) {
}
});
}
```