Lewati ke konten

Asosiasi File

Platform Relevan: Windows macOS


Asosiasi file memungkinkan aplikasi Anda menangani jenis file tertentu saat pengguna membukanya. Ini sangat berguna untuk editor teks, penampil gambar, atau aplikasi apa pun yang bekerja dengan format file tertentu. Panduan ini menjelaskan cara mengimplementasikan asosiasi file di aplikasi Wails v3 Anda.

Dukungan asosiasi file di Wails v3 saat ini tersedia untuk:

  • Windows (paket installer NSIS)
  • macOS (application bundle)

Asosiasi file dikonfigurasi di file config.yml yang berada di direktori build proyek Anda.

Untuk menyiapkan asosiasi file:

  1. Buka build/config.yml
  2. Tambahkan asosiasi file Anda di bawah bagian fileAssociations
  3. Jalankan wails3 update build-assets untuk memperbarui build assets
  4. Atur field FileAssociations di opsi aplikasi
  5. Package aplikasi Anda menggunakan wails3 package

Berikut contoh konfigurasi:

fileAssociations:
- ext: myapp
name: MyApp Document
description: MyApp Document File
iconName: myappFileIcon
role: Editor
- ext: custom
name: Custom Format
description: Custom File Format
iconName: customFileIcon
role: Editor
PropertiDeskripsiPlatform
extEkstensi file tanpa titik di depan (mis. txt)Semua
nameNama tampilan untuk jenis fileSemua
descriptionDeskripsi yang ditampilkan di properti fileWindows
iconNameNama file ikon (tanpa ekstensi) di folder buildSemua
rolePeran aplikasi untuk jenis file ini (mis. Editor, Viewer)macOS
mimeTypeTipe MIME untuk file (mis. image/jpeg)macOS

Untuk menangani event buka file di aplikasi Anda, Anda dapat mendengarkan event events.Common.ApplicationOpenedWithFile:

main.go
package main
import (
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/events"
)
func main() {
app := application.New(application.Options{
Name: "MyApp",
FileAssociations: []string{".txt", ".md"}, // Tentukan ekstensi yang didukung
})
// Dengarkan file yang digunakan untuk membuka aplikasi
app.Event.OnApplicationEvent(events.Common.ApplicationOpenedWithFile, func(event *application.ApplicationEvent) {
associatedFile := event.Context().Filename()
app.Dialog.Info().SetMessage("Application opened with file: " + associatedFile).Show()
})
// Buat window Anda dan jalankan aplikasi...
}

Mari kita telusuri penyiapan asosiasi file untuk editor teks sederhana:

    • Buat ikon untuk jenis file Anda (ukuran yang disarankan: 16x16, 32x32, 48x48, 256x256)
    • Simpan ikon di folder build proyek Anda
    • Beri nama sesuai konfigurasi iconName Anda (mis., textFileIcon.png)
    • Untuk macOS tambahkan pernyataan copy seperti cp build/darwin/documenticon.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources di task create:app:bundle:.
  1. Edit file build/config.yml untuk menambahkan asosiasi file Anda:

    build/config.yml
    fileAssociations:
    - ext: txt
    name: Text Document
    description: Plain Text Document
    iconName: textFileIcon
    role: Editor
  2. Jalankan perintah berikut untuk memperbarui build assets:

    Terminal window
    wails3 update build-assets
  3. Di file main.go Anda, atur field FileAssociations di opsi aplikasi:

    app := application.New(application.Options{
    Name: "MyApp",
    FileAssociations: []string{".txt", ".md"}, // Tentukan ekstensi yang didukung
    })
  4. Package aplikasi Anda menggunakan perintah berikut:

    Terminal window
    wails3 package

    Aplikasi yang di-package akan dibuat di direktori bin. Anda kemudian dapat menginstal dan menguji aplikasi.

    • Ikon harus disediakan dalam format PNG di folder build
    • Menguji asosiasi file memerlukan penginstalan aplikasi yang sudah di-package