美文网首页
ionic 封装原生android为插件

ionic 封装原生android为插件

作者: 明天以后就娶你 | 来源:发表于2018-09-17 17:09 被阅读0次

    之前因为要在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复杂原生项目集成的方式

    相关文章

      网友评论

          本文标题:ionic 封装原生android为插件

          本文链接:https://www.haomeiwen.com/subject/oklrnftx.html