之前因为要在ionic项目中实现短视频功能没有找到相关插件,遂利用原生封装为插件实现:
准备:
1.首先需要用原生实现功能
2.编写插件,配置plugin.xml
配置所需权限注: 此插件比较简单如涉及到多个activity以及广播还需要进行相应的配置
3.调用插件
开始:
原生实现比较简单,可自行百度。从插件编写也就是第二步开始记录
1.生成插件
命令:plugman create --name 插件名 --plugin_id 包名 --plugin_version 0.0.1(版本号)
其中这些参数都是可以随意定义的
2.添加平台支持
命令:plugman platform add --platform_name android or ios
生成成功后会自动创建android文件夹以及Java文件,这个文件是插件的js 调用原生功能的桥梁
3.编写js
此处编写的js为生成插件后在www文件下生成的js文件,形式为 插件名.js
参数说明:exports.reconverInten 方法是用来调用原生class文件,对应第二步生成的Java文件中的方法
exec参数说明:1.成功的回调,2错误的回调3.可理解为第二布生成Java类的名称(见下图)4.调用方法。5.参数
4.Java编写
1.
action.equals 是用来判断插件调用的是哪个方法
2.intent跳转以及接受返回值 以上图reconverIntent 方法为例
跳转: this.cordova.startActivityForResult((CordovaPlugin)this, intent, 1);
因为这里集成的是CordovaPlugin 并不是原生的activity所以必须以这种方式跳转
接受返回值:编写onActivityResult 方法此方法是原生android中的方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){
this.callbackContext.success(data.getDataString());
}else{
this.callbackContext.error("Unexpected error");
}
}
注意:此方法是跳转到摄像头退出后接收到的返回值,并不是从activity跳转回来接受 到的返回值
5.插件安装及调用
到插件目录下:npm init生成package.json
安装 ionic cordova plugin add 插件
调用:
安装完成后的样子,在platforms\android\platform_www 中找到cordova_plugins.js
clobbers就是调用名称,调用:
此插件实现比较简单,配置较少下次记录多个activity复杂原生项目集成的方式