一、后端代码: 同步方式
@UniJSMethod(uiThread = false)
public JSONObject scan() throws ConfigurationException {
if (barcodeUtility != null) {
Log.i(TAG, "ScanBarcode");
barcodeUtility.startScan(context, BarcodeUtility.ModuleType.BARCODE_2D);
}
JSONObject data = new JSONObject();
data.put("code", "scan: " + barCode);
return data;
}
异步方式:
@UniJSMethod(uiThread = true)
public void scan(JSONObject json, UniJSCallback callback) throws ConfigurationException {
if (barcodeUtility != null) {
Log.i(TAG, "ScanBarcode");
barcodeUtility.startScan(context, BarcodeUtility.ModuleType.BARCODE_2D);
}
callback.invoke(new JSONObject(){{
put("code",0);
put("result", "success");
}});
}
二、前段调用:
同步:
var ret = testBarCode.scan();
uni.showToast({
title:JSON.stringify(ret),
icon:'none'
})
异步::
testBarCode.scan({
},e=>{
uni.showToast({
title:JSON.stringify(e),
icon:'none'
})
})