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的互動細節介紹 裡講解的一致。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2213393/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Cordova外掛中JavaScript程式碼與Java的互動細節介紹JavaScript
- Cordova學習--iOS自定義外掛iOS
- 快速自定義Cordova外掛(-配置檔案)
- 利用chrome除錯JavaScript程式碼Chrome除錯JavaScript
- JMeter 擴充套件開發:自定義 JMeter 外掛的除錯JMeter套件除錯
- 用Chrome除錯JavaScript,找到js加密演算法的程式碼Chrome除錯JavaScriptJS加密演算法
- javascript自定義右鍵選單程式碼JavaScript
- 用附加到程式的方法除錯服務程式碼除錯
- 用醫生的思考方式除錯你的程式碼除錯
- javascript應用cookie的封裝程式碼JavaScriptCookie封裝
- mybaits原始碼分析--自定義外掛(七)AI原始碼
- [譯]用 LLDB 除錯 Swift 程式碼LLDB除錯Swift
- IDEA外掛:快速刪除Java程式碼中的註釋IdeaJava
- 5分鐘教你使用idea除錯SeaTunnel自定義外掛Idea除錯
- javascript為html元素新增自定義屬性程式碼JavaScriptHTML
- 7個高效能JavaScript程式碼高亮外掛JavaScript
- NodeJS的程式碼除錯和效能調優NodeJS除錯
- 如何除錯javascript程式碼簡單介紹除錯JavaScript
- GDB 除錯程式碼除錯
- apisix~自定義外掛的部署API
- iOS 逆向 - 重籤應用除錯與程式碼修改 (Hook)iOS除錯Hook
- Flutter 應用程式除錯Flutter除錯
- javascript刪除陣列元素的程式碼JavaScript陣列
- Qt自定義外掛plugin的開發和呼叫QTPlugin
- 如何組織大型JavaScript應用中的程式碼?JavaScript
- Jenkins 的svn外掛下載的程式碼不是最新程式碼的問題Jenkins
- 類似if一樣的自定義程式碼塊
- Xcode自定義程式碼塊XCode
- 程式碼自動生成外掛:
- [轉]OpenLiveWriter 程式碼外掛
- 程式碼除錯的N種姿勢除錯
- 除錯py程式碼踩過的坑除錯
- Kube-Scheduler外掛的自定義
- vue 程式碼除錯神器Vue除錯
- mybatis 自定義外掛MyBatis
- 原生javascript新增和刪除select的option項程式碼JavaScript
- cordova除錯除錯
- 用 Eclipse 外掛提高程式碼質量Eclipse