PhoneGap插件调用Java流程源码分析(四)

原创 2015年11月19日 14:43:48

                                           JS调用Java端 分析

想了解phonegap 开发大概流程,应该知道如下几点。

   1.js 通过html prompt弹窗接口往anroid native 发送消息。

   2.android java本地利用WebChromeClient 对象的 onJsPrompt函数截获html 弹窗的消息(cordova继承webChormeClient并且重写onJsPrompt)。

   3.android java本地截获到消息以后,通过PluginManager 把消息分发到具体插件,同时通过jsMessageQueue收集需要返回给js的数据。(异步处理)

   4.如何实现把jsMessageQueue的数据返回到js

   5.pluginmanager负责加载和管理所有plugin.


Js通过prompt函数 调用native代码
module.exports = {
    exec: function(bridgeSecret, service, action, callbackId, argsJson) {
        return prompt(argsJson, 'gap:'+JSON.stringify([bridgeSecret, service, action, callbackId]));
    },
    setNativeToJsBridgeMode: function(bridgeSecret, value) {
        prompt(value, 'gap_bridge_mode:' + bridgeSecret);
    },
    retrieveJsMessages: function(bridgeSecret, fromOnlineEvent) {
        return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret);
    }
};
在这里就会调用到本地webChromeClient的onJsPrompt,具体里面做了什么请看PhoneGap插件调用Java流程源码分析(二),这里不是重点.

JS的调用流程:

1. 网页js调用cordova.exec

2. 调用到cordova的exec模块,初始化参数,调用nativeApi的exec

3. 根据nativeApi的情况,分两种情况调用。

4. promptbasednativeapi中,调用了prompt方法。

5. 从而在ChromeWebViewClient中回调了onJsPrompt方法,从而调用到本地方法。


最后总结一下主要的类:

CordovaActivity:Cordova Activity入口,已实现PluginManager、WebView的相关初始化工作, 只需继承CordovaActivity实现自己的业务需求。

PluginManager: 插件管理器

ExposedJsApi :javascript调用Native, 通过插件管理器PluginManager 根据service找到具体实现类。

NativeToJsMessageQueue:Native调用javascript,主要包括三种方式:loadUrl 、 轮询、反射WebViewCore执行js





PhoneGap插件调用Java流程源码分析(三)

0

PhoneGap插件调用Java流程源码分析(一)

PhoneGap插件调用Java流程源码分析 PhoneGap 简介    PhoneGap是一个能够让Web开发者快速进行移动app开发的开源框架。     PhoneGap主要涉及的技术包括...

sqoop 抽取源码流程分析(一) 主流程分析以及各种插件

sqoop 源码 继承关系

Phonegap插件编写 Java面向对象方法

上一篇博文中我转载了别人写的phonegap的编写方法,简单回顾一下: cordova中有Plugin这个类,编写的插件继承于这个类,其中有exec这个方法,根据第二个参数的命令进行判断,来决定该执...
  • Yelbosh
  • Yelbosh
  • 2012年07月02日 21:50
  • 1585

Android开发中java与javascript交互:PhoneGap插件vs addJavascriptInterface

1.        前言 在《用PhoneGap+jQueryMobile开发Android应用实例》中,我们讲到PhoneGap(以下称Cordova)开发环境的搭建,以及如何整合出一个基本的An...

java流程分析插件(SOPA)_V1.0.0.zip

  • 2014年02月15日 11:25
  • 2.27MB
  • 下载

Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析

流程图:     该图是OneCoder通过阅读Netty源码,逐渐记录下来的。基本可以说明Netty服务的启动流程。这里在具体讲解一下。   首先说明,我们这次顺利的流程是基于...

Java程序员从笨鸟到菜鸟之(四十)细谈struts2(四)struts2中action执行流程和源码分析

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188   首先我们看一下struts官方给我们提供的struts执行流程 从上面流...

Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析

这次OneCoder花了几天时间,仔细梳理了一下Netty的源码,总结了一下ServerBootStrap的启动和任务处理流程,基本涵盖了Netty的关键架构。   OneCoder总结了一张流程...

phonegap扫描二维码插件

  • 2014年09月09日 09:02
  • 1.88MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PhoneGap插件调用Java流程源码分析(四)
举报原因:
原因补充:

(最多只允许输入30个字)