正在用uniapp做原生开发,
deviceModule.initNfcDevice((ret) => {
console.log('ret', ret)
})
@UniJSMethod (uiThread = true)
public void initNfcDevice(final UniJSCallback callback){
Log.i(TAG, "init nfc device");
if(mUniSDKInstance != null && mUniSDKInstance.getContext() instanceof Activity) {
Log.i(TAG, "init nfc device start");
UsbNFCDeviceManager.getInst().init(mUniSDKInstance.getContext(), new UsbNFCDeviceManager.UsbNFCCallback() {
@Override
public void callbackNoDevice() {
Log.i(TAG, "callbackNoDevice");
}
@Override
public void callbackDeviceName(String name) {
Log.i(TAG, "callbackDeviceName " + name);
}
@Override
public void callbackCardid(String cardid) {
Log.i(TAG, "callbackCardid " + cardid);
if (callback != null) {
JSONObject data = new JSONObject();
data.put("status", "success");
data.put("cardid", cardid);
Log.e(TAG, "invoke call back");
callback.invoke(data);
}
}
@Override
public void callbackCardMessage(String message) {
Log.i(TAG, "callbackCardMessage " + message);
}
@Override
public void callbackCardTakeaway(String cardid) {
Log.i(TAG, "callbackCardTakeaway " + cardid);
if (callback != null) {
JSONObject data = new JSONObject();
data.put("status", "leave");
data.put("cardid", cardid);
callback.invoke(data);
}
}
@Override
public void callbackSlot(int slot) {
Log.i(TAG, "callbackSlot " + slot);
}
@Override
public void callbackErrorMessage(String message) {
Log.i(TAG, "callbackErrorMessage " + message);
}
@Override
public void callbackSecondContent(String content) {
Log.i(TAG, "callbackSecondContent");
}
@Override
public void callbackClearSecondContent() {
Log.i(TAG, "callbackClearSecondContent");
}
});
}
}
在安卓端callbackCardid这个回调是可能多次执行的,但是在uniapp这边只收到一次,uniapp不能接收多次回调吗
北极大尾巴狼
为啥我这个方法只能调用一次呢,返回的值也是全局的public
2022-08-19 13:43