`
JerryWang_SAP
  • 浏览: 1043325 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Cordova应用的JavaScript代码和自定义插件代码的调试

阅读更多

我之前写过三篇Cordova相关的技术文章。当我们使用Cordova将自己开发的前端应用打包安装到手机上后,可能会遇到需要调试Cordova应用的时候。

本文就介绍Cordova应用的调试步骤。

如果大家读过之前我写的文章,就知道Cordova应用在移动平台上运行时,实际上Cordova包内的前端应用的HTML/JavaScript代码仍然运行在一个嵌入的Webview里。同时Cordova也允许开发人员开发一些插件,这些插件能调用基于特定移动平台的原生API,通过Cordova框架直接暴露给前端JavaScript消费。因此本文包含两部分的介绍:

如何调试Cordova应用里的JavaScript代码

如何调试Cordova自定义插件的代码

先说Cordova前端代码如何调试。这里我以Android安卓平台为例。首先打开安卓手机的调试模式,然后用数据线连接到电脑上。打开Chrome开发者工具,Settings->More tools->Remote devices:

 

这里我就能看到我正在运行Cordova应用的三星手机,SM A7100,状态处于已连接状态(Connected)。

 

2. 在我的三星手机上启动Cordova应用,然后在Chrome开发者工具里能看到SM-A7100对应的应用列表里出现了一个"WebView in io.cordova.hellocordova....", 这条记录就是我在三星手机上运行的Cordova应用,前面已经说了,该应用实际上是运行在一个嵌入的Webview里的。点击”Inspect"按钮:

 

3. 切换到Sources标签页,这里能看到目前为止加载的html和Javascript源代码。剩下的时候和平时调试运行在PC浏览器里的Web应用没有任何区别。注意开发者工具的标题"file:///android_asset/www/index.html提示了当前调试的index.html所在的位置。

例如下图第38行,实际就是从Cordova JavaScript代码执行到我自己开发的基于Android平台的Cordova插件代码的入口位置。

 

下图第967行是JavaScript代码到Java代码的分界岭。具体JavaScript代码是如何执行到Java栈中去的,请看我的另一篇文章 Cordova插件中JavaScript代码与Java的交互细节介绍

 

Cordova自定义插件的调试步骤

按照这篇文章 使用JavaScript调用手机平台上的原生API 介绍的步骤,用Java开发了一个基于Android平台的Cordova插件。

现在我想在我的Windows电脑上对这个插件进行调试。

假设我的Cordova项目名称为JerryUI5HelloWorld,在这个文件夹下有一个子文件夹platforms,找到里面的android文件夹:

 

用Android Studio打开这个android子文件夹。找到你的插件实现文件,在Android Studio里设置好断点。

 

在Android studio里用调试模式启动项目:

 

在手机上再次执行Cordova应用,JavaScript代码里调用Cordova插件的入口如下。插件名称Adder,对应Java里的同名类,插件方法performAdd,会在Java类Adder里得到处理:

 

Java插件的断点成功触发了:

 

从Android Studio里的调用栈能进一步研究我们开发的Cordova插件是如何通过Cordova框架从JavaScript端被调用的:

1. SystemExposedJsApi.exec

2. CordovaBridge.jsExec

3. PluginManager.exec

4. CordovaPlugin.exec

5. 我们的自定义插件被调用

 

这个调用栈也和我这篇文章 Cordova插件中JavaScript代码与Java的交互细节介绍 里讲解的一致。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 

 
 
分享到:
评论

相关推荐

    Android Cordova 插件开发之编写自定义插件

    通过以上步骤,你已经成功创建了一个简单的 Cordova 自定义插件,它能在 Android 平台上接收 JavaScript 调用,并返回一个问候消息。这只是一个起点,实际开发中,你可以根据需求扩展功能,例如访问设备硬件、网络...

    cordova ios 自定义插件例子

    iOS 平台是 Cordova 支持的重要部分,而自定义插件则是扩展 Cordova 应用功能的关键手段。这个"cordova ios 自定义插件例子"是一个适合新手入门的学习资源,它会引导你了解如何为 iOS 平台创建和使用自定义 Cordova ...

    cordova3.0 ios自定义插件demo

    总之,Cordova 3.0 iOS自定义插件的开发涉及到对JavaScript和Objective-C的双重理解,以及熟悉Cordova的插件机制。通过实践这个demo,开发者可以提升混合应用开发的能力,更好地利用Cordova框架实现跨平台的移动应用...

    Cordova添加自定义插件Demo

    Cordova添加自定义插件是移动应用开发中的一个重要环节,特别是在使用Cordova框架构建混合应用时。Cordova允许开发者利用Web技术(HTML、CSS、JavaScript)来构建原生的移动应用,而自定义插件则提供了与设备底层...

    Android混合开发自定义Cordova插件

    通过这个资源,你不仅可以了解Cordova项目的基本结构,还能掌握自定义插件的方法,为自己的混合应用开发铺平道路。在实际开发中,可以根据需求自定义各种插件,充分利用Android系统的强大功能,同时保持Web开发的...

    cordova开发自定义插件(详细篇含jar包调用示例)

    在本文中,我们将深入探讨如何在Cordova环境中开发自定义插件,特别是涉及Java JAR包的调用以及Android与JavaScript之间的交互。 首先,让我们了解为什么需要创建自定义插件。Cordova的核心理念是提供一个桥梁,...

    PhoneGap iOS 自定义插件

    在PhoneGap中,自定义插件通常分为两个部分:JavaScript接口和原生(iOS)代码。JavaScript接口暴露给应用程序,使得在Web层可以调用插件方法,而原生代码则负责与iOS系统进行交互,执行实际的功能操作。 1. **创建...

    自定义插件

    在IT行业中,自定义插件是一种非常常见的技术实践,特别是在移动应用开发领域,例如使用Ionic框架进行混合应用开发时。...理解并掌握自定义插件的创建和使用,是提升Ionic应用开发能力的重要一环。

    android PhoneGap 自定义插件

    因此,自定义插件的开发通常包括两部分:JavaScript接口和Android native代码。 在Android中,创建一个PhoneGap插件通常涉及以下步骤: 1. 创建Java类:你需要创建一个继承自`org.apache.cordova.CordovaPlugin`的...

    cordova插件小例(他人)

    2. **创建自定义插件**:开发自定义 Cordova 插件时,你需要在项目的 `plugin.xml` 文件中定义插件的元数据,包括 ID、版本、依赖等信息,并声明 JavaScript 接口和原生方法的映射。例如,你可以定义一个名为 `...

    cordova 原生拨号插件

    Cordova原生拨号插件的工作原理是通过Cordova的插件机制,桥接JavaScript和原生平台的代码。在Android平台上,它会创建一个BroadcastReceiver监听电话拨号事件,并调用系统拨号器。在iOS上,它可能会使用`...

    调用cordova插件的一个ionic实例,插件包含android服务

    2. **自定义插件**:开发者创建了一个专门的Cordova插件,可能包含Java代码,用于与Android服务交互。这个插件应该位于`plugins`目录下,包含`plugin.xml`配置文件,定义了插件的元数据和JavaScript接口。 3. **...

    Cordova 3.x 实用插件(1) -- Google地图Maps

    Cordova 3.x 是一个流行的开源框架,它允许开发者使用Web技术(如HTML、CSS和JavaScript)来构建原生移动应用程序。在这个特定的教程中,我们聚焦于Cordova 3.x的一个实用插件——Google Maps插件。这个插件允许...

    自定义plugin插件,实现javascript与Android的交互

    2. **创建自定义插件** 创建一个自定义PhoneGap插件通常涉及以下步骤: - **定义接口**:在`www`目录下创建一个新的JavaScript文件,定义插件的JavaScript接口。例如,你可以创建一个函数`callAndroidFunction`,...

    PhoneGap/Cordova的支付宝Android插件

    这个插件的目的是桥接JavaScript和Android原生代码,使PhoneGap/Cordova应用能够调用支付宝SDK,实现支付流程。 集成这个插件的过程大致如下: 1. **安装插件**:首先,开发者需要在项目的配置文件(config.xml)...

    cordova 和原生交互 调用h5页面

    Cordova 是一个开源的移动应用开发框架,它允许开发者使用Web技术(HTML、CSS和JavaScript)来构建原生的移动应用程序。Cordova通过将应用程序包装在一个WebView中,使其能够访问设备的功能,如摄像头、GPS、联系人...

    cordova跳转原生Activity

    总结来说,`cordova跳转原生Activity`涉及到的关键点包括:Cordova插件开发、JavaScript与Java之间的通信、启动和接收原生Activity的结果。`HjkPlugin`作为一个具体的插件实例,展示了如何实现这一功能。在实际开发...

    android_cordova(node4.4.7全插件)

    **Android Cordova与Node....总结来说,Android Cordova结合Node.js 4.4.7,为开发者提供了丰富的设备功能接口,通过插件化的机制,实现了Web与原生应用的融合,降低了跨平台开发的门槛,促进了移动应用的创新和发展。

    cordova activity和HTML通信

    2. **Cordova 插件**:创建自定义插件是实现通信的主要方式。在 JavaScript 中定义一个函数,该函数调用 `cordova.exec()` 方法,传入服务名、方法名和参数。在 Android 侧,你需要创建一个继承自 `CordovaPlugin` ...

    Phonegap中自定义插件的使用

    PhoneGap是一种开源框架,它允许开发者使用HTML、CSS和JavaScript...具体实现细节需要查看源码才能了解,但基本思路是遵循上述的自定义插件创建流程,提供JavaScript接口供前端调用,然后在设备端实现实际的功能逻辑。

Global site tag (gtag.js) - Google Analytics