Cordova startActivityForResult

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kangkang_style/article/details/84965716

CordovaInterface接口说明
CordovaInterface 接口默认是由 CordovaInterfaceImpl 类实现的,当中包括了一个Activity对象。
当打开APP时 Cordova 会默认启动此 Activity 以承载 Cordova 核心引擎对程序进行管理。
ExecutorService 则负责对象对线程池进行管理,
PluginManager则负责对插件进行管理,
CordovaPlugin则是Cordova插件的父类,所有插件都必须继承CordovaPlugin。

CordovaInterfaceImpl三个最常用方法
1. 方法
    void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode)
   说明
    绑定CordovaPlugin参数,并调用Activity对象的startActivityForResult(intent, requestCode)方法,根据 intent 绑定值跳转到对应的activity
    
2. 方法
    void setActivityResultCallback(CordovaPlugin plugin)
   说明
    激发CordovaPlugin对象的onActivityResult事件
    
3.  方法
     boolean onActivityResult(int requestCode, int resultCode, Intent intent)
    说明
     封装Acticity对象的onActivityResult回调函数, 激发CordovaPlugin对象的onActivityResult事件

补充说明:
    startActivityForResult(cordovaPlugin,intent,int)方法启动该Activity。
    当 Activity 结束后,系统将调用回调函数 onActivityResult(int requestCode, int resultCode, Intent intent)
    而setActivityResultCallback(CordovaPlugin plugin)可以主动触发某一个插件的onActivityResult回调监听

运行逻辑描述:
    CordovaPlugin继承类通过startActivityForResult(cordovaPlugin,intent,int)方法启动原生Activity。
    原生Activity 被触发后先通过 setContentView 方法绑定视图,再从intent 对象中获取输入参数进行处理。
    当原生Activity执行完本地逻辑后,通过 Activity 类的setResult(int resultCode, Intent data) 方法绑定返回值。
    其中resultCode可被 cordovaPlugin 插件用作判断返回值的处理结果。
    然后调用原生Activity对象的 finish 方法关闭当前Activity,把返回值回传到 CordovaPlugin。
    原生activity关闭后,cordovaPlugin 插件通过调用回调函数 onActivityResult(int requestCode, int resultCode, Intent intent),
    回调函数中可根据 resultCode 参数判断处理情况,根据不同的结果对intent 中的返回值 bundler 对象进行不同处理。
    最后使用 callbackContext 对象中的 success(string) 方法把处理结果回传到页面。

猜你喜欢

转载自blog.csdn.net/kangkang_style/article/details/84965716