https://github.com/fitri-hy/web2apk-generator-api
Sebuah server sederhana berbasis Express.js yang dapat menghasilkan file APK Android dari sebuah URL website menggunakan Apache Cordova.
https://github.com/fitri-hy/web2apk-generator-api
apache-cordova cordova expressjs nodejs web2apk website
Last synced: about 1 year ago
JSON representation
Sebuah server sederhana berbasis Express.js yang dapat menghasilkan file APK Android dari sebuah URL website menggunakan Apache Cordova.
- Host: GitHub
- URL: https://github.com/fitri-hy/web2apk-generator-api
- Owner: fitri-hy
- License: mit
- Created: 2025-05-05T10:44:41.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-06T09:42:40.000Z (about 1 year ago)
- Last Synced: 2025-05-07T02:07:08.598Z (about 1 year ago)
- Topics: apache-cordova, cordova, expressjs, nodejs, web2apk, website
- Language: Java
- Homepage:
- Size: 274 KB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Web2APK (Cordova Webview) Generator API Nodejs
Sebuah server sederhana berbasis Express.js yang dapat menghasilkan file APK Android dari sebuah URL website menggunakan Apache Cordova melalui API.
---
## ๐ Fitur
- Membuat APK Android dari URL website.
- Upload logo PNG (via form-data) atau dari URL (via body JSON).
- Link download APK langsung tersedia setelah build.
- Build otomatis dengan Cordova + SDK Android + Gradle.
- Bersih-bersih otomatis folder build sementara.
---
## ๐งฐ Kebutuhan
Sebelum menjalankan server ini, pastikan kamu sudah menginstal:
* **Node.js v23.8.0+**
* **NPM 11.3.0+**
* **Android SDK 34+**
* **Gradle 8.14+**
* **Cordova** (global)
```bash
npm install -g cordova
```
---
## ๐ ๏ธ Instalasi
1. **Clone & masuk ke folder**
```bash
git clone https://github.com/fitri-hy/web2apk-generator-api.git
cd web2apk-generator-api
```
2. **Install dependensi**
```bash
npm install
```
> *Lakukan juga di dalam folder `app-template`*
3. **Atur path SDK Android dan Gradle**
Buka folder `config/paths.js` dan bagian berikut:
```js
ANDROID_SDK_PATH: 'C:\\Users\\Name-PC\\AppData\\Local\\Android\\Sdk',
GRADLE_PATH: path.join(__dirname, '../gradle-8.14/bin')
```
4. **Jalankan server**
```bash
node index.js
```
---
## ๐งช Pengujian API
### โ
Metode 1: Form-Data (Upload File)
Gunakan jika ingin mengunggah logo secara langsung.
#### ๐ธ Header
```
Content-Type: multipart/form-data
```
#### ๐ธ Form Fields
| Field | Wajib | Keterangan |
| -------- | -------- | -------------------------- |
| appName | โ
| Nama aplikasi Android |
| url | โ
| URL yang dimuat di WebView |
| logoFile | opsional | File logo PNG (.png saja) |
#### ๐งช Contoh via Postman
* Method: `POST`
* URL: `http://localhost:8800/generate`
* Body > form-data:
* `appName`: `ContohApp`
* `url`: `https://example.com`
* `logoFile`: (Upload file PNG)
#### ๐ค Respons
```json
{
"message": "APK generated",
"downloadUrl": "http://localhost:8800/download/ContohApp-abc123.apk"
}
```
---
### โ
Metode 2: Body JSON (Pakai logo dari URL)
Gunakan jika tidak ingin upload logo, cukup pakai URL PNG.
#### ๐ธ Header
```
Content-Type: application/json
```
#### ๐ธ Body (raw JSON)
```json
{
"appName": "MyWebApp",
"url": "https://your-site.com",
"logoUrl": "https://your-site.com/images/logo.png"
}
```
> Logo harus berformat PNG dan dapat diakses publik.
#### ๐งช Contoh via curl
```bash
curl -X POST http://localhost:8800/generate \
-H "Content-Type: application/json" \
-d '{
"appName": "MyWebApp",
"url": "https://your-site.com",
"logoUrl": "https://your-site.com/images/logo.png"
}'
```
---
## โ ๏ธ Validasi & Error
* โ `400` jika `appName`/`url` tidak dikirim.
* โ `400` jika file logo bukan PNG.
* โ `500` jika gagal build APK.
* โ ๏ธ Logo bisa di-skip, tapi hasil APK pakai ikon default.
---
## ๐ Output
APK hasil build disimpan di folder:
```
/output
```
Bisa diunduh dari:
```
http://localhost:8800/download/{nama-file.apk}
```
---
## ๐งน Otomatis Bersih-Bersih
Folder sementara otomatis dihapus setelah proses build selesai atau jika terjadi error.
---
## ๐ Struktur Folder
```
web2apk-generator-api/
โ
โโโ app-template/
โโโ config/
โโโ controllers/
โโโ middlewares/
โโโ node_modules/
โโโ output/
โโโ routes/
โโโ utils/
โโโ gradle-8.14
โโโ index.js
โโโ package.json
โโโ README.md
```