Android项目里集成Cordova详解(3)

环境:Android Studio 2.2
- 1.将CordovaLib作为module导入

Android项目里集成Cordova详解


Android项目里集成Cordova详解


- 2.添加依赖

Android项目里集成Cordova详解


Android项目里集成Cordova详解

六 自定义插件

1.自定义你的java类

1.1.包名,等下会用到。
1.2.集成的父类。
1.3.重写的方法。
1.4.传递的参数。
1.5.action匹配。

Android项目里集成Cordova详解

2.在config.xml文件中添加配置

2.1.js文件名
2.2.Java类路径名(详见1.1)

Android项目里集成Cordova详解

3.在assets/www/plugins文件夹下新建文件夹cordova-plugin-xxxx文件夹,并在此文件夹下新建xxxx.js文件。

3.1.js的文件夹名.文件名
3.2.方法名
3.3.与config.xml文件下一致
3.4.方法名==2(与java文件下action一致)
3.5.成功回调函数
3.6.失败回调函数 [content,type]是传递的参数

Android项目里集成Cordova详解

Android项目里集成Cordova详解

Android项目里集成Cordova详解

4.在cordova_plugins.js中添加必要配置

4.1.file:js路径名
4.2.id:js的文件夹名.文件名
4.3.html文件中方法名的前缀 在module.exports.metadata中添加
4.5. js的文件夹名
4.6.版本号

Android项目里集成Cordova详解

Android项目里集成Cordova详解

5.在index.html中调用

function Toast(){ navigator.Toast.getTost("Toast测试",0,onSuccess,onError); function onSuccess(Data){ alert(JSON.stringify(Data)); } function onError(Data){ alert(JSON.stringify(Data)); } } 七 java类中的一些问题

1.startActivityForResult

Android项目里集成Cordova详解


查看CordovaActivty源码:

Android项目里集成Cordova详解


查看CordovaPlugin源码:

Android项目里集成Cordova详解


在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(JSONObject);

Android项目里集成Cordova详解

八 在CordovaActivity中添加原生View组件 #

原因:继承CordovaActivity的子类中默认只有一个WebView,实际开发中不能满足需求。
解决方案:可以使用setContentView设置XML布局,需要重写的两种方法:makewebview 和createviews。(亲测通过extends Activity implements CordovaInterface方法实现时,cordova.startActivityForResult不回调,具体原因尚不明)
- makewebview() : 很重要,它使用R.id.cordovawebview,会定义在XML布局文件。
- createViews() : 它会默认使用setContentView,想使用自己定义的布局,需要重写该方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f0f8ae4e81dfdaab8f001d6325e1e1d9.html