页面上调用原生代码,实现一个扫描功能,当后台扫描完成后,如何通知页面呢?目前我的做法是用的定时器,有什么其他的方法吗?后台应该怎么写才能调用js function?

zDoorService = plus.android.importClass("com.zhsq.kmh.DoorService");

zservice = new zDoorService();

zmain = plus.android.runtimeMainActivity();

zservice.scanDevice(zmain);

zInter = setInterval(function() {

if(zservice.getScaning() == false){

zserviceId = zservice.getDevs();

if(!zserviceId){

mui.alert("暂未匹配到设备,请重试");

}else{

mui.alert("匹配成功,设备id:"+zserviceId);

}

clearInterval(zInter);

zInter = null;

}

}, 100);

public class DoorService {

private static final String RET = "ret";

private static final int SEC = 3;

private ArrayList devs;

private Boolean scaning = false;

public void scanDevice(Context context) {

scaning = true;

try {

ScanCallback callback = new ScanCallback() {

@Override

public void onScanResult(ArrayList arrayList, ArrayList arrayList1) {

devs = arrayList;

scaning = false;

}

@Override

public void onScanResultAtOnce(String s, int i) {

}

};

LibDevModel.scanDevice(context, false, SEC, callback);

} catch (Exception e) {

Log.e(e.getMessage(), e.getMessage());

}

}

public Boolean getScaning() {

return scaning;

}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐