Skapa ett C++-meddelandetillägg för Electron

Den här guiden visar hur du skapar ett internt C++-tillägg som använder api:erna för Windows App SDK-meddelanden i din Electron-app. Detta är en bra utgångspunkt för att förstå interna tillägg innan du dyker in i mer komplexa scenarier.

Förutsättningar

Steg 1: Skapa ett internt C++-tillägg

Använd winapp CLI för att generera en C++-tilläggsmall:

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

Då skapas en nativeWindowsAddon/ mapp med:

  • addon.cc – Din C++-kod som anropar Windows-API:er
  • binding.gyp – Skapa konfiguration för intern kompilering

Kommandot lägger också till ett build-addon skript i package.json.

Skapa tillägget:

npm run build-addon

Steg 2: Lägg till meddelandekod

Öppna nativeWindowsAddon/addon.cc och uppdatera den så att api:erna för Windows App SDK-meddelanden används. Den genererade mallen innehåller nödvändiga Windows SDK och Windows App SDK rubriker.

Lägg till inkluderingsfiler för notifikations-API:et.

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

Lägg till en funktion som visar ett Windows-meddelande:

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

Registrera funktionen i Init metoden:

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

Steg 3: Skapa tillägget

npm run build-addon

Steg 4: Testa meddelandet

Öppna src/index.js och läs in tillägget:

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

Lägg till ett testanrop:

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

Kör appen:

npm start

Ett Windows-meddelande bör visas.

Steg 5: Uppdatera felsökningsidentitet

När du ändrar appxmanifest.xml kör du:

npx winapp node add-electron-debug-identity

Nästa steg