Ассоциации файлов
Настройка ассоциаций файлов для приложения Wails
Поддерживаемые платформы: Windows macOS
Ассоциации файлов позволяют приложению обрабатывать файлы определённых типов, когда пользователи открывают их. Это особенно полезно для текстовых редакторов, программ просмотра изображений и любых других приложений, работающих с определёнными форматами файлов. В этом руководстве объясняется, как реализовать ассоциации файлов в приложении Wails v3.
Обзор
В настоящее время Wails v3 поддерживает ассоциации файлов для следующих платформ:
- Windows (установочные пакеты NSIS)
- macOS (пакеты приложений)
Настройка
Ассоциации файлов настраиваются в файле config.yml, расположенном в каталоге build вашего проекта.
Базовая настройка
Чтобы настроить ассоциации файлов:
- Откройте
build/config.yml - Добавьте ассоциации файлов в раздел
fileAssociations - Выполните
wails3 update build-assets, чтобы обновить ресурсы сборки - Задайте поле
FileAssociationsв параметрах приложения - Упакуйте приложение с помощью
wails3 package
Пример конфигурации:
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Свойства конфигурации
| Свойство | Описание | Платформа |
|---|---|---|
| ext | Расширение файла без начальной точки (например, txt) |
Все |
| name | Отображаемое имя типа файла | Все |
| description | Описание, отображаемое в свойствах файла | Windows |
| iconName | Имя файла значка без расширения в папке сборки | Все |
| role | Роль приложения для этого типа файлов (например, Editor, Viewer) |
macOS |
| mimeType | MIME-тип файла (например, image/jpeg) |
macOS |
Обработка событий открытия файлов
Чтобы обрабатывать события открытия файлов в приложении, можно отслеживать событие events.Common.ApplicationOpenedWithFile:
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"}, // Specify supported extensions
})
// Listen for files being used to open the application
app.Event.OnApplicationEvent(events.Common.ApplicationOpenedWithFile, func(event *application.ApplicationEvent) {
associatedFile := event.Context().Filename()
app.Dialog.Info().SetMessage("Application opened with file: " + associatedFile).Show()
})
// Create your window and run the app...
}
Пошаговое руководство
Рассмотрим настройку ассоциаций файлов для простого текстового редактора:
Создание значков
- Создайте значки для своего типа файлов (рекомендуемые размеры: 16x16, 32x32, 48x48, 256x256)
- Сохраните значки в папке
buildвашего проекта - Назовите их в соответствии с конфигурацией
iconName(например,textFileIcon.png)
- Для macOS добавьте в задачу
create:app:bundle:команду копирования, напримерcp build/darwin/documenticon.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources.
Настройка ассоциаций файлов
Измените файл build/config.yml, добавив в него ассоциации файлов:
# build/config.yml
fileAssociations:
- ext: txt
name: Text Document
description: Plain Text Document
iconName: textFileIcon
role: EditorОбновление ресурсов сборки
Чтобы обновить ресурсы сборки, выполните следующую команду:
wails3 update build-assets
Задание ассоциаций файлов в параметрах приложения
В файле main.go задайте поле FileAssociations в параметрах приложения:
app := application.New(application.Options{
Name: "MyApp",
FileAssociations: []string{".txt", ".md"}, // Specify supported extensions
})Упаковка приложения
Упакуйте приложение с помощью следующей команды:
wails3 package
Упакованное приложение будет создано в каталоге bin. После этого приложение можно установить и протестировать.
Дополнительные примечания
- Значки следует размещать в папке сборки в формате PNG
- Для тестирования ассоциаций файлов необходимо установить упакованное приложение