Lewati ke konten

Referensi API

Ini adalah referensi API lengkap untuk Wails v3. Dokumen ini mendokumentasikan setiap tipe, metode, dan opsi publik yang tersedia di framework.

Organisasi:

Konvensi API Go - Untuk pengembang yang baru mengenal Go
  • Tipe: PascalCase (mis., WebviewWindow)
  • Metode: PascalCase (mis., SetTitle())
  • Opsi: Struct PascalCase (mis., WindowOptions)
  • Konstanta: PascalCase (mis., WindowStartStateMaximised)

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.

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().

Konfigurasi menggunakan struct opsi:

app := application.New(application.Options{
Name: "My App",
Description: "A demo application",
Services: []application.Service{
application.NewService(&MyService{}),
},
})
  • Fungsi: camelCase (mis., setTitle())
  • Konstanta: SCREAMING_SNAKE_CASE (mis., WINDOW_EVENT_FOCUS)

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))

Error Go menjadi exception JavaScript:

try {
await MyService.MightFail()
} catch (error) {
console.error('Go error:', error)
}

Definisi TypeScript dibuat secara otomatis:

// Sepenuhnya bertipe
import { Greet } from './bindings/GreetService'
const message: string = await Greet("World")
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 SQLite
import (
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/events"
)
// Binding yang dibuat otomatis
import { MyMethod } from './bindings/MyService'
// API runtime
import { Events, Window } from '@wailsio/runtime'
// 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 { /* ... */ }

Beberapa API berperilaku berbeda di berbagai platform:

FiturWindowsmacOSLinux
Menu AplikasiMenu bar windowMenu bar globalMenu bar window
System TrayNotification areaMenu barSystem tray
DockN/A✅ TersediaN/A
Dialog fileNativeNativeNative (GTK)
Transparansi✅ Penuh✅ Penuh⚠️ Terbatas

Perilaku khusus platform didokumentasikan di setiap bagian API.

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: Alpha (API stabil, penyempurnaan berkelanjutan)

Ketika API di-deprecate:

  1. Ditandai di dokumentasi dengan pemberitahuan deprecation
  2. Alternatif disediakan dengan panduan migrasi
  3. Dipertahankan selama 1 versi major sebelum dihapus
  4. Peringatan compiler (jika memungkinkan)

API ini stabil dan aman untuk penggunaan produksi:

  • API aplikasi inti
  • Pengelolaan window
  • Sistem menu
  • Sistem event
  • Dialog file
  • Service bindings

API ini dapat berubah sebelum rilis final:

  • Beberapa opsi window lanjutan
  • Fitur khusus platform
  • Fitur eksperimental

API tidak stabil ditandai dalam dokumentasi.

  1. Periksa referensi ini - Dokumentasi API lengkap
  2. Periksa contoh - Contoh di GitHub
  3. Cari di Discord - Server Discord
  4. Tanya komunitas - Channel #help di Discord

Menemukan bug atau inkonsistensi?

  1. Periksa issue yang ada - GitHub issues
  2. Buat laporan detail - Sertakan kode, error, platform
  3. Sediakan reproduksi - Contoh minimal yang mendemonstrasikan masalah
  • 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.