转自:http://blog.csdn.net/u013491677/article/details/51985390
五、AS环境下将CordovaLib作为依赖导入
1. 将CordovaLib作为module导入
2. 添加依赖
六、自定义插件
1.自定义你的java类
1.1 包名,等下会用到
1.2 继承的父类
1.3 重写的方法
1.4 传递的参数
1.5 action匹配
2. 在config.xml文件中添加配置
2.1.js文件名
2.2.java类路径名
3. 在assets/www/plugins文件夹下新建文件夹cordova-plugin-xxx文件夹,并在此文件夹新建xxx.js文件
3.1.js的文件夹名.文件名
3.2.方法名
3.3.与config.xml文件下一致
3.4.方法名==2(与java文件下action一致)
3.5.成功回调函数
3.6.失败回调函数[content,type]是传递的参数
4. 在cordova_plugins.js中添加必要配置
4.1.file:js路径名
4.2.id:js文件夹名.方法名
4.3.html文件中方法名的前缀 在module.exports.metadata中添加
4.5.js的文件夹名
4.6.版本号
5. 在index.html中调用
七、java类中的一些问题
1.startActivityForResult
查看CordovaActivity源码:
查看CordovaPlugin源码:
在WebView的CordovaActivity获取到Result后,会调用cordovaInterface.onActivityResult(requestCode, resultCode, intent)方法通知CordovaPlugin。如果使用cordova.getActivity().startActivityForResult(intent, CORDOVA_SPEEN)方式,并没有将CordovaPlugin传进去,在WebView的CordovaActivity获取到Result后,结果只会返回到WebView的CordovaActivity当中,并不会进行下一步。
2. 回调
mCallbackContext.success(JSONObject);
mCallbackContext.error(JSONObejct);
八在CordovaActivity中添加原生View组件
1. 原因:继承CordovaActivity的子类中默认只有一个WebView,实际开发中不能满足需求。
2. 解决方案:可以使用setContentView设置XML布局,需要重写的方法:makeWebView和createViews。
(亲测通过extends Activity implements CordovaInterface方法实现时,cordova.startActivityForResult不回调,具体原因尚不明)
-makeWebView(): 很重要,它使用R.id.cordovaWebView,会定义在XML布局文件
-createViews(): 它会默认使用setContentView,想使用自己定义的布局,需要重写该方法
3. 使用Cordova需要注意的问题
1). 在Activity的onCreate方法中,loadUrl(launchUrl)调用之后,CordovaLib中的WebView对象才幼稚,因此使用appView时,必须卸载loadUrl之后
2). 在Cordova中,appView是不能直接调用addJavascriptInterface()方法的,在调用该方法之前,需要加上一行代码:
WebView wv = (WebView) appView.getEngine().getView();
调用WebView的其他方法类似。
九在Fragment里使用CordovaWebView