Android项目里集成Cordova详解

转自: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值