Referensi API
Dokumentasi API lengkap untuk Wails v3
Tentang Referensi Ini
Ini adalah referensi API lengkap untuk Wails v3. Dokumen ini mendokumentasikan setiap tipe, metode, dan opsi publik yang tersedia di framework.
Organisasi:
- Application - API inti aplikasi
- Window - Pembuatan dan pengelolaan window
- Menu - Menu aplikasi, konteks, dan system tray
- Events - Sistem event dan event bawaan
- Dialogs - Dialog file dan pesan
- Frontend Runtime - API frontend runtime
- CLI - Antarmuka baris perintah
Konvensi API
Konvensi API Go - Untuk pengembang yang baru mengenal Go
Penamaan
- Tipe: PascalCase (mis.,
WebviewWindow) - Metode: PascalCase (mis.,
SetTitle()) - Opsi: Struct PascalCase (mis.,
WindowOptions) - Konstanta: PascalCase (mis.,
WindowStartStateMaximised)
Penanganan Error
Sebagian besar metode yang dapat gagal mengembalikan error sebagai nilai kembalian terakhir. app.Run() memblokir hingga aplikasi keluar dan mengembalikan error startup jika ada:
if err := app.Run(); err != nil {
log.Fatal(err)
}Konstruksi window tidak mengembalikan error — app.Window.New() mengembalikan *WebviewWindow secara langsung.
Context
Metode lifecycle service menerima context.Context:
func (s *MyService) ServiceStartup(ctx context.Context, options application.ServiceOptions) error {
// ctx dibatalkan saat aplikasi sedang dimatikan.
return nil
}Context lifetime aplikasi tersedia melalui app.Context(). Tidak ada RunWithContext — panggil app.Run().
Pola Opsi
Konfigurasi menggunakan struct opsi:
app := application.New(application.Options{
Name: "My App",
Description: "A demo application",
Services: []application.Service{
application.NewService(&MyService{}),
},
})Konvensi API JavaScript
Penamaan
- Fungsi: camelCase (mis.,
setTitle()) - Konstanta: SCREAMINGSNAKECASE (mis.,
WINDOW_EVENT_FOCUS)
Async secara Default
Semua pemanggilan metode Go mengembalikan Promise:
// Async/await (direkomendasikan)
const result = await MyService.DoSomething()
// Promise chain
MyService.DoSomething()
.then(result => console.log(result))
.catch(error => console.error(error))Penanganan Error
Error Go menjadi exception JavaScript:
try {
await MyService.MightFail()
} catch (error) {
console.error('Go error:', error)
}Type Safety
Definisi TypeScript dibuat secara otomatis:
// Sepenuhnya bertipe
import { Greet } from './bindings/GreetService'
const message: string = await Greet("World")Struktur Paket
github.com/wailsapp/wails/v3/pkg/
├── application/ # Paket aplikasi inti
│ ├── application.go # Tipe App
│ ├── webview_window.go # Pengelolaan window
│ ├── menu.go # Tipe menu
│ ├── event_manager.go # Sistem event
│ └── dialogs.go # API dialog
├── events/ # Konstanta event
└── services/ # Service bawaan
├── dock/ # macOS dock (termasuk dukungan badge)
├── fileserver/ # Service file-server
├── kvstore/ # Key/value store
├── log/ # Service logging terstruktur
├── notifications/ # Service notifikasi
└── sqlite/ # Service SQLitePath Import
Go
import (
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/events"
)JavaScript
// Binding yang dibuat otomatis
import { MyMethod } from './bindings/MyService'
// API runtime
import { Events, Window } from '@wailsio/runtime'Referensi Tipe
Tipe Umum
// Application
type App struct { /* ... */ }
type Options struct { /* ... */ }
// Window
type WebviewWindow struct { /* ... */ } // mengimplementasikan antarmuka Window
type WebviewWindowOptions struct { /* ... */ }
// Menu
type Menu struct { /* ... */ }
type MenuItem struct { /* ... */ }
// Events — tidak ada tipe Event generik; event ditentukan tipenya berdasarkan sumber.
type ApplicationEvent struct { /* ... */ }
type WindowEvent struct { /* ... */ }
type CustomEvent struct { /* ... */ }
type EventListener struct { /* ... */ }
// Dialogs
type OpenFileDialogOptions struct { /* ... */ }
type SaveFileDialogOptions struct { /* ... */ }// Window runtime
interface WindowOptions {
title?: string
width?: number
height?: number
// ...
}
// Events
type EventCallback = (data: any) => void
// Bindings (dibuat otomatis)
export function MyMethod(arg: string): Promise<string>Perbedaan Platform
Beberapa API berperilaku berbeda di berbagai platform:
| Fitur | Windows | macOS | Linux |
|---|---|---|---|
| Menu Aplikasi | Menu bar window | Menu bar global | Menu bar window |
| System Tray | Notification area | Menu bar | System tray |
| Dock | N/A | ✅ Tersedia | N/A |
| Dialog file | Native | Native | Native (GTK) |
| Transparansi | ✅ Penuh | ✅ Penuh | ⚠️ Terbatas |
Perilaku khusus platform didokumentasikan di setiap bagian API.
Versioning
Wails v3 mengikuti semantic versioning:
- Major (v3.x.x): Perubahan breaking
- Minor (v3.x.x): Fitur baru, kompatibel ke belakang
- Patch (v3.x.x): Perbaikan bug, kompatibel ke belakang
Status saat ini: Beta (API stabil, penyempurnaan berkelanjutan)
Kebijakan Deprecation
Ketika API di-deprecate:
- Ditandai di dokumentasi dengan pemberitahuan deprecation
- Alternatif disediakan dengan panduan migrasi
- Dipertahankan selama 1 versi major sebelum dihapus
- Peringatan compiler (jika memungkinkan)
Stabilitas API
API Stabil ✅
API ini stabil dan aman untuk penggunaan produksi:
- API aplikasi inti
- Pengelolaan window
- Sistem menu
- Sistem event
- Dialog file
- Service bindings
API Tidak Stabil ⚠️
API ini dapat berubah sebelum rilis final:
- Beberapa opsi window lanjutan
- Fitur khusus platform
- Fitur eksperimental
API tidak stabil ditandai dalam dokumentasi.
Mendapatkan Bantuan
Pertanyaan API
- Periksa referensi ini - Dokumentasi API lengkap
- Periksa contoh - Contoh di GitHub
- Cari di Discord - Server Discord
- Tanya komunitas - Channel #help di Discord
Melaporkan Masalah API
Menemukan bug atau inkonsistensi?
- Periksa issue yang ada - GitHub issues
- Buat laporan detail - Sertakan kode, error, platform
- Sediakan reproduksi - Contoh minimal yang mendemonstrasikan masalah
Dokumentasi Terkait
- Tutorial - Belajar dengan membangun aplikasi nyata
- Panduan - Panduan berorientasi tugas untuk skenario umum
- Fitur - Dokumentasi fitur per fitur
- Contoh - Contoh kode yang berfungsi di GitHub
Jelajahi API: Gunakan navigasi di sebelah kiri untuk mengeksplorasi API tertentu.