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,找到js加密演算法的程式碼Chrome除錯JavaScriptJS加密演算法
- JMeter 擴充套件開發:自定義 JMeter 外掛的除錯JMeter套件除錯
- IDEA外掛:快速刪除Java程式碼中的註釋IdeaJava
- mybaits原始碼分析--自定義外掛(七)AI原始碼
- 5分鐘教你使用idea除錯SeaTunnel自定義外掛Idea除錯
- GDB 除錯程式碼除錯
- 自定義AndroidStudio程式碼模板Android
- Xcode自定義程式碼塊XCode
- iOS 逆向 - 重籤應用除錯與程式碼修改 (Hook)iOS除錯Hook
- Flutter 應用程式除錯Flutter除錯
- Python 程式碼除錯—使用 pdb 除錯Python除錯
- 程式碼除錯的N種姿勢除錯
- 公司程式碼被洩露了,別再亂用 AI 程式碼外掛了!!AI
- vue 程式碼除錯神器Vue除錯
- apisix~自定義外掛的部署API
- 搞了個OneThink的程式碼編輯外掛
- 自定義Android Studio程式碼模板Android
- 程式碼自動生成外掛:
- Qt自定義外掛plugin的開發和呼叫QTPlugin
- C# 程式碼中呼叫 Javascript 程式碼段以提高應用程式的配置靈活性(使用 Javascript .NET 與 Jint)C#JavaScript
- gradle自定義任務和外掛Gradle
- 使用 VSCode 除錯 Electron 主程式程式碼VSCode除錯
- 幽默:除錯程式碼問題的最佳方法除錯
- Kube-Scheduler外掛的自定義
- 使用 vscode 除錯前端程式碼VSCode除錯前端
- phpstorm 使用 Xdebug 除錯程式碼PHPORM除錯
- VS Code除錯C程式碼除錯C程式
- Python之PySnooper程式碼除錯PythonOOP除錯
- 專案的改造——RemoveButterKnife外掛程式碼的重構REM
- 嘿,我造了個程式碼高亮的外掛
- 免費的visual studio智慧程式碼外掛——CodeGeeX
- gradle自定義外掛Gradle
- mybatis 自定義外掛MyBatis
- xcode10 自定義程式碼塊XCode
- JavaScript 程式碼報錯型別JavaScript型別