Delen via


Een C++-meldingsinvoegtoepassing voor Electron maken

Deze handleiding laat zien hoe u een systeemeigen C++-invoegtoepassing maakt die gebruikmaakt van de Windows App SDK meldings-API's in uw Electron-app. Dit is een goed uitgangspunt voor het begrijpen van systeemeigen invoegtoepassingen voordat u dieper ingaat op complexere scenario's.

Vereiste voorwaarden

Stap 1: Een systeemeigen C++-invoegtoepassing maken

Gebruik de winapp CLI om een C++-invoegtoepassingssjabloon te genereren:

npx winapp node create-addon --template cpp --name nativeWindowsAddon

Hiermee maakt u een nativeWindowsAddon/ map met:

  • addon.cc - Uw C++-code die Windows-API's aanroept
  • binding.gyp - Buildconfiguratie voor systeemeigen compilatie

Met de opdracht wordt ook een build-addon script toegevoegd aan uw package.json.

Bouw de invoegtoepassing:

npm run build-addon

Stap 2: Meldingscode toevoegen

Open nativeWindowsAddon/addon.cc en werk deze bij om de Windows App SDK meldings-API's te gebruiken. De gegenereerde sjabloon bevat de benodigde Windows SDK en Windows App SDK headers.

Voeg invoegingen toe voor de meldings-API.

#include <winrt/Microsoft.Windows.AppNotifications.h>
#include <winrt/Microsoft.Windows.AppNotifications.Builder.h>

Voeg een functie toe waarin een Windows-melding wordt weergegeven:

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();
    }
}

Registreer de functie in de Init methode:

exports.Set("showNotification", Napi::Function::New(env, ShowNotification));

Stap 3: De invoegtoepassing bouwen

npm run build-addon

Stap 4: De melding testen

Open src/index.js de invoegtoepassing en laad deze:

const addon = require('../nativeWindowsAddon/build/Release/nativeWindowsAddon.node');

Een testgesprek toevoegen:

addon.showNotification('Hello from Electron!', 'This notification uses the Windows App SDK.');

Voer de app uit:

npm start

U ziet nu dat er een Windows-melding wordt weergegeven.

Stap 5: Foutopsporingsidentiteit bijwerken

Wanneer u het wijzigt appxmanifest.xml, voert u het volgende uit:

npx winapp node add-electron-debug-identity

Volgende stappen