安卓插件Module类型,AS无报错HB无报错排查-传参问题
环境
Hbuilder X :3.7.11.20230427
Android studio:Android Studio Flamingo | 2022.2.1 Patch 1
uniapp:nvue文件
事发
const wsMod = uni.requireNativePlugin('wsMod');
js中我是这样调用方法并传参的
wsMod.startMyWebsocketServer((this.port))
Android Studio中这样写的
@UniJSMethod(uiThread = true)
public void startMyWebsocketServer(int port) {
Log.i("port",""+port);
}
将hb的项目打包离线,丢进AS中无任何报错,完美运行。
但是将AS的插件打成aar丢进hb项目后,打基座,无任何报错,插件使用无反应,也无任何提示。
解决方案
js中使用json数据传递,并给回调。官方文档:JSCallback结果回调
wsMod.startMyWebsocketServer({
port:this.port
},(ret) => {
console.log(ret)
})
AS中接收json数据,并以json格式返回数据
public void startMyWebsocketServer(JSONObject options,UniJSCallback callback) {
Log.i("port",""+options.getIntValue("port"));
port = options.getIntValue("port");//获取uni传递过来的参数
JSONObject data = new JSONObject();
data.put("data","start success");
callback.invoke(data);//返回数据
}