Referensi API

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:

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: SCREAMING_SNAKE_CASE (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 SQLite

Path 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 { /* ... */ }

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:

  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)

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

  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

Melaporkan Masalah API

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

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.

Edit page

Last updated: