使用Cordova將您的前端JavaScript應用打包成手機原生應用
假設我用JavaScript和HTML開發了一個前端應用,我想把該應用打包成能直接在手機上安裝和執行(不通過瀏覽器)的原生應用,例如像下面這樣。對應用的使用者來說,他們得到的使用者體驗和真正的用Android Studio或者XCode開發的原生應用完全一致。
這是怎麼做到的?
答案是使用Apache的開源框架,Cordova。
以Android框架為例,Cordova能將您的前端應用裡的JavaScript和HTML資源打包成Android原生的apk檔案,可以直接在安卓手機上安裝。執行時,這些JavaScript和HTML直接執行在Cordova提供的一個嵌入式的WebView控制元件裡,對於手機使用者來說,他們對此毫不知情,以為自己使用的是手機原生應用。
下面就跟著我一步一步來使用Cordova打包您的前端專案吧。
1. 在電腦上安裝nodejs,把安裝後的目錄加入到Path環境變數中去。
2. 使用nodejs的包管理器npm安裝Cordova。命令列:npm -g install cordova:
3. 建立一個新的資料夾,然後進入該資料夾,建立一個新的Cordova專案。命令列:
cordova create JerryUI5HelloWorld
於是一個新的Cordova專案被自動建立出來了。裡面包含很多子資料夾。
Platforms資料夾是空的,因為此時我們尚未新增該Cordova專案支援的移動平臺。
4. 假設我們想打包成一個可以安裝到Android平臺的應用,那麼得為該Cordova專案新增對Android平臺的支援。使用命令列新增:cordova platform add android
命令列執行完畢後,我們敬如platforms資料夾,發現多了一個android資料夾,裡面多出很多資料夾和資源。這些自動生成的東西都是最後打包生成安卓應用APK檔案所必須的。
如果一切正常,我們會得到下面的目錄結果。
5. www資料夾下有個自動生成的index.html檔案。我們用命令列cordova prepare, 這個index.html會自動被拷貝到資料夾platformsandroidassetswww下面。這揭示了Cordova使用的一個最佳實踐:我們所有的前端開發,都是直接在Cordova專案檔案根目錄的www資料夾內進行。開發結束後,使用cordova prepare,根目錄的www資料夾裡的資源會自動被拷貝到該專案支援的移動平臺對應的資料夾內,在我的例子裡是platformsandroidassetswww。
一切就緒了。現在使用命令列cordova compile進行打包,安卓應用的APK檔案就生成在資料夾platforms/android/build/output/apk裡了。
注意cordova compile這個命令需要您本地安裝Gradle,如果安裝,會遇到下列錯誤訊息:
Error: Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio。
我沒有選擇安裝龐大的Android Studio,而是下載了gradle的二進位制版本,將其加入到Path環境變數中即可。
將APK安裝到您的手機上,執行,您會看到下列這個預設的介面。這其實是Cordova專案建立後生成的預設的index.html打包安裝到手機後執行的效果。
剩下的事情就很容易了,把您的前端應用的所有資源全部拷貝到Cordova專案檔案根目錄下的www資料夾裡,然後執行cordova prepare, 將這些資源自動同步到資料夾platformsandroidassetswww下面,再次執行命令列cordova compile重新生成APK檔案即可。
如果沒有Android手機,也可以用Android Studio裡提供的模擬器來測試。
在Android Virtual Device Manager裡建立一個新的虛擬裝置:
然後使用命令列將cordova compile生成的APK檔案安裝到模擬器上:
adb install j.apk
現在就能在Android模擬器裡使用您的前端應用通過Cordova打包生成的應用了。
要獲取更多Jerry的原創技術文章,請關注公眾號”汪子熙”或者掃描下面二維碼:
相關文章
- 如何使用 Cordova 將 SAP UI5 應用生成一個能在 Android 手機上安裝的混合應用試讀版UIAndroid
- 用SAP WebIDE將CRUD Master-Detail應用打包成Hybrid AppWebIDEASTAIAPP
- HTML5應用 + Cordova = 平臺相關的混合應用HTML
- HTML5應用+Cordova=平臺相關的混合應用HTML
- JavaScript隨機數的應用JavaScript隨機
- 使用 ABAP 控制 Android 原生應用Android
- 使用Jexus 容器化您的 Blazor 應用程式Blazor
- Cordova應用的JavaScript程式碼和自定義外掛程式碼的除錯JavaScript除錯
- 原生JavaScript實現的SPA單頁應用(hash路由)JavaScript路由
- 如何使用 docker 部署前端應用Docker前端
- 協作機器人是否適合您的應用?機器人
- 將你的前端應用打包成docker映象並部署到伺服器?僅需一個指令碼搞定前端Docker伺服器指令碼
- PWA 應用和原生應用的一些區別
- 前端 JS 原生 javascript 和 location.hash 實現一個單頁應用的路由 router前端JSJavaScript路由
- 使用 Rootless Linux 容器保護您的 .NET 雲應用Linux
- ionic4+vue+cordova開發混合應用Vue
- 智慧雲原生應用的崛起
- JavaScript中AOP的應用JavaScript
- charles前端應用前端
- HarmonyOS:給您的應用新增通知(1)
- 如何深度應用您的CRM系統
- .NET雲原生應用實踐(五):使用Blazor WebAssembly實現前端頁面BlazorWeb前端
- 使用新 Android Gradle 外掛加速您的應用構建AndroidGradle
- jpackage安裝Java原生本機應用的新工具PackageJava
- 如何解構單體前端應用——前端應用的微服務式拆分前端微服務
- 譯:原生iOS應用程式和原生Android應用程式設計之間的差異iOSAndroid程式設計
- 雲原生時代,應用架構將如何演進?應用架構
- Cordova + Vue 實現點選兩次退出應用Vue
- 使用Taro開發鴻蒙原生應用——快速上手,鴻蒙應用開發指南鴻蒙
- 使用 Taro 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南鴻蒙
- Cordova深度定製的H5容器實際應用H5
- 使用Cordova –實現點選手機物理返回鍵時,應用進入後臺執行,而不是直接關閉!
- 如何檢測手機惡意應用?整合華為應用安全檢測,提升App使用安全APP
- Holer實現手機APP應用外網訪問本地WEB應用APPWeb
- 使用 Play Integrity API 來保護您的應用和遊戲API遊戲
- 如何使用 Chrome 除錯執行在手機上的 SAP UI5 Cordova 混合應用試讀版Chrome除錯UI
- 為您的新Mac帶來最佳應用Mac
- Python開發Windows桌面應用程式(三)應用程式打包成exeWindows可執行檔案PythonWindows