Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как создать собственный надстройку C++, которая использует API уведомлений Windows App SDK в приложении Electron. Это отличная отправная точка для понимания собственных аддонов перед тем как погрузиться в более сложные сценарии.
Необходимые условия
- Завершена настройка среды разработки
- Windows 11
Шаг 1. Создание собственного C++-модуля
Используйте интерфейс командной строки Winapp для создания шаблона надстройки C++:
npx winapp node create-addon --template cpp --name nativeWindowsAddon
При этом создается папка с: nativeWindowsAddon/
-
addon.cc— Код C++ с вызовом API Windows -
binding.gyp— настройка сборки для нативной компиляции
Команда также добавляет build-addon скрипт в ваш package.json.
Создайте надстройку:
npm run build-addon
Шаг 2. Добавление кода уведомления
Откройте nativeWindowsAddon/addon.cc и обновите его, чтобы использовать API уведомлений Windows App SDK. Созданный шаблон включает необходимые заголовки Windows SDK и Windows App SDK.
Добавьте включения для API уведомлений.
#include <winrt/Microsoft.Windows.AppNotifications.h>
#include <winrt/Microsoft.Windows.AppNotifications.Builder.h>
Добавьте функцию, отображающую уведомление Windows:
Napi::Value ShowNotification(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
try {
std::string title = info[0].As<Napi::String>().Utf8Value();
std::string message = info[1].As<Napi::String>().Utf8Value();
winrt::Microsoft::Windows::AppNotifications::Builder::AppNotificationBuilder builder;
builder.AddText(winrt::to_hstring(title));
builder.AddText(winrt::to_hstring(message));
auto notification = builder.BuildNotification();
winrt::Microsoft::Windows::AppNotifications::AppNotificationManager::Default().Show(notification);
return Napi::Boolean::New(env, true);
} catch (const winrt::hresult_error& e) {
Napi::Error::New(env, winrt::to_string(e.message())).ThrowAsJavaScriptException();
return env.Null();
}
}
Зарегистрируйте функцию в методе Init :
exports.Set("showNotification", Napi::Function::New(env, ShowNotification));
Шаг 3. Создайте надстройку
npm run build-addon
Шаг 4. Проверка уведомления
Откройте src/index.js и загрузите надстройку:
const addon = require('../nativeWindowsAddon/build/Release/nativeWindowsAddon.node');
Добавьте тестовый вызов:
addon.showNotification('Hello from Electron!', 'This notification uses the Windows App SDK.');
Запустите приложение:
npm start
Появится уведомление Windows.
Шаг 5. Обновление удостоверения отладки
Каждый раз, когда вы изменяете appxmanifest.xml, выполните следующие действия:
npx winapp node add-electron-debug-identity
Дальнейшие действия
- Создание надстройки Phi Silica — использование API на устройстве
- Создание надстройки WinML — запуск моделей machine learning
- Упаковка для распространения — создание подписанного пакета MSIX
Связанные темы
Windows developer