Freigeben über


Erstellen eines C++-Benachrichtigungs-Add-Ons für Electron

In diesem Handbuch erfahren Sie, wie Sie ein systemeigenes C++-Addon erstellen, das die Windows App SDK Benachrichtigungs-APIs in Ihrer Electron-App verwendet. Dies ist ein guter Ausgangspunkt für das Verständnis nativer Addons, bevor Sie in komplexere Szenarien eintauchen.

Voraussetzungen

Schritt 1: Erstellen eines nativen C++-Add-Ons

Verwenden Sie die winapp CLI, um eine C++-Add-On-Vorlage zu generieren:

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

Dadurch wird ein nativeWindowsAddon/ Ordner mit:

  • addon.cc – Ihr C++-Code, der Windows-APIs aufruft
  • binding.gyp – Buildkonfiguration für native Kompilierung

Mit dem Befehl wird auch ein build-addon Skript zu Ihrem package.json hinzugefügt.

Erstellen Sie das Addon:

npm run build-addon

Schritt 2: Hinzufügen von Benachrichtigungscode

Öffnen Sie nativeWindowsAddon/addon.cc, und aktualisieren Sie sie, um die Windows App SDK Benachrichtigungs-APIs zu verwenden. Die generierte Vorlage enthält die erforderlichen Header-Dateien des Windows SDK und des Windows App SDK.

Fügen Sie die Benachrichtigungs-API ein:

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

Fügen Sie eine Funktion hinzu, die eine Windows-Benachrichtigung anzeigt:

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

Registrieren Sie die Funktion in der Init Methode:

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

Schritt 3: Erstellen des Add-Ons

npm run build-addon

Schritt 4: Testen der Benachrichtigung

Öffnen src/index.js und laden das Add-On:

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

Hinzufügen eines Testanrufs:

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

Führen Sie die App aus:

npm start

Es sollte eine Windows-Benachrichtigung angezeigt werden.

Schritt 5: Aktualisieren der Debugidentität

Führen Sie bei jeder Änderung appxmanifest.xml Folgendes aus:

npx winapp node add-electron-debug-identity

Nächste Schritte