cordova 一般是通过js主动调用原生代码触发的! 一般是通过回调事件实现的! 如果想实现原生代码主动调用js,可以参考案例:
可以参考案例/Native/plugins/com.justep.cordova.plugin.baiduMapBase/src/android/src/baidumap/BaiduMapPlugin.java
百度地图插件的原生实现。里面有原生调用js的代码。
mBaiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener() { /** * 单击地图 */ public void onMapClick(LatLng point) { try { touchType = "单击地图"; currentPt = point; updateMapState(); // baiduMap.prototype.eventOccur // {action:String,lat:Num,lon:Num,zoom:Num,overlook:Num,rotate:Num} JSONObject js = new JSONObject(); js.put("action", "click"); js.put("lat", point.latitude); js.put("lon", point.longitude); js.put("zoom", mBaiduMap.getMapStatus().zoom); js.put("overlook", mBaiduMap.getMapStatus().overlook); js.put("rotate", mBaiduMap.getMapStatus().rotate); callJS("navigator.baiduMap.base.eventOccur(" + js + ")"); } catch (JSONException e) { e.printStackTrace(); } }
评一波