精品軟體與實用教程
Website-to-APK:高效率的開源WebView 應用程式建置框架
在行動應用開發領域,將現有網站快速封裝為原生Android APK 的需求日益凸顯,尤其對於開發者尋求最小化開發週期和資源投入的場景。 Website-to-APK 作為一款精煉的開源工具,透過WebView 元件實現無縫轉換,無需Android Studio 或Java 程式設計專長,即可將任意網站轉化為功能完整的APK 包裝器。該框架不僅簡化了建置流程,還確保了跨裝置相容性和安全性,適用於從靜態網站到動態Web 應用的多種用例。根據GitHub 數據,該專案已協助數千開發者部署生產級應用,大幅降低了行動裝置轉型門檻。
核心特性
- 完全免費且開源**:基於MIT 授權協議,原始碼公開透明,使用者可自由審查、修改和擴展,確保合規性和可維護性。
- 直覺式命令列介面**:採用豐富多彩的輸出格式,提供使用者友善的互動體驗,即使是初學者也能高效導航。
- 自動化環境依賴**:內建OpenJDK 17 與Android SDK 工具的自動下載與安裝機制,消除手動設定的複雜性。
- 完整APK 生命週期管理**:涵蓋簽章、建置和測試的全連結自動化,支援生產級部署。
- 使用者腳本整合**:相容於Tampermonkey 風格的腳本注入,擴充應用功能而無需核心修改。
- 低資源佔用**:最佳化後的建置過程將系統需求最小化,適用於資源受限的環境。
快速入門
克隆此存儲庫:
git clone https://github.com/Jipok/website-to-apk cd website-to-apk
建立設定檔 webapk.conf
:
id = myapp # Application ID (will be com.myapp.webtoapk) name = My App Name # Display name of the app mainURL = https://example.com # Target website URL icon = example. https://example.com # Target website URL icon = example.png 15 # Allow navigation between example.com and sub.example.com requireDoubleBackToExit = true # Require double back press to exit app enableExternalLinks = true # Allow external exit openternal 電話links in browser or WebView confirmOpenInBrowser = true # Show confirmation before opening external browser allowOpenMobileApp = false # Block external app links/schemes
產生簽名金鑰(只需一次,確保產生的檔案安全):
./make.sh keygen
應用配置並建置:
./make.sh build
最終的APK 將在目前目錄中建立。
注意:如果建立應用程式報錯的話,請檢查設定文件,設定檔的id選項中不能包含「點」。
YouTube 範例
目錄中提供了YouTube 的預先配置配置文件 confs/youtube
。要建立YouTube APK,只需執行以下命令:
./make.sh build confs/youtube/webapk.conf
可用指令
./make.sh build [config] - 應用配置並構建
./make.sh keygen - 產生簽名金鑰
./make.sh test - 在連接的裝置上安裝並測試APK
./make.sh clean - 清理建置文件
./make.sh apk - 不使用apply_config 建構APK
./make.sh apply_config - 從設定檔應用設定
./make.sh get_java - 在本地下載OpenJDK 17
應用程式連結/深層鏈接
您可以透過在設定檔中設定選項,讓您的應用程式處理指向網站的連結deep link。設定後,在裝置上點擊指向您網站的連結將在應用程式中打開,而不是在瀏覽器中開啟。
例如,如果您的網站是 https://example.com,請設定:
deeplink = example.com
用戶腳本支持
該應用程式透過設定選項支援使用者腳本(類似於Tampermonkey/Violentmonkey 腳本) scripts
:
scripts = scripts/*.js # Load all .js files from scripts directory # OR scripts = site-*.js # Load all files matching pattern # OR scripts = script1*.js 20.
使用者腳本如何運作:
- 腳本可以使用Tampermonkey/Violentmonkey/etc @match
和 @run-at
指令,其他的忽略
- 如果沒有 @match
指定,腳本將在所有頁面上運行
- 僅 GM_addStyle
支援Greasemonkey API
- 有 toast("short message")
功能
- 可以使用以下方式監視腳本控制台輸出(console.log/alert/warn
):
./make.sh test
常見用例包括:
- 為網站新增暗模式
- 自訂網站外觀
- 新增功能
- 修復行動相容性問題
一些有用的腳本範例:
dark-mode.js - 尊重系統偏好的通用暗色主題
instant.js - 當使用者點擊時預先載入頁面,加快頁面載入速度
附加WebView 選項
也可以配置以下進階選項:
cookies = "key1=value1; key2=value2" # Cookies for mainURL host basicAuth = login:password # HTTP Basic Auth credentials for mainURL host userAgent = "MyCustomUserAgent/1.0" # Cusable Habled execution JSCanOpenWindowsAutomatically = true # Allow JS to open new windows/popups DomStorageEnabled = true # Enable HTML5 DOM storage DatabaseEnabled = true # Enable HTML5 Web SQL Data5 DOM storage DatabaseEnabled = true # Enable HTML5 Web SQL AllowFileAccessFromFileURLs = true forceLandscapeMode = false # Lock screen orientation to landscape showDetailsOnErrorScreen = false # Show connection error details for user confirmOpenExternalAppalApppternalpternalAppalp 這些true # Block requests to 127.0.0.1 trustUserCA = false # Allow app to trust user-installed SSL certs geolocationEnabled = false # Block geolocation API
技術細節
- - 目標Android API:33(Android 13)
- - 最低Android API:24(Android 7.0)
- - 建置工具版本:33.0.2
- - Gradle 版本:7.4
- - 所需Java 版本:17
- - 所有應用程式資料都儲存在應用程式的私人目錄中
- - 金鑰庫
app/my-release-key.jks
密碼預設為“123456”
在行動開發工具鏈中,Website-to-APK 以其模組化和可擴充性脫穎而出,特別適合快速原型迭代或將Web 資產轉化為原生分發包。無論您是獨立開發者還是團隊協作,該框架都能顯著縮短從概念到部署的周期,同時保持高相容性和安全性。立即複製倉庫,探索其潛力—開源社群的力量,將您的想法轉化為現實。