Vytvoření doplňku pro oznámení v jazyce C++ pro Electron

V této příručce se dozvíte, jak vytvořit nativní doplněk C++, který používá rozhraní API pro oznámení Windows App SDK ve vaší aplikaci Electron. Toto je skvělý výchozí bod pro pochopení nativních doplňků před tím, než se ponoříte do složitějších scénářů.

Předpoklady

Krok 1: Vytvoření nativního doplňku jazyka C++

Pomocí rozhraní příkazového řádku winapp vygenerujte šablonu doplňku jazyka C++:

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

Tím se nativeWindowsAddon/ vytvoří složka s:

  • addon.cc – Váš kód C++, který bude volat rozhraní API systému Windows
  • binding.gyp – Konfigurace sestavení pro nativní kompilaci

Příkaz také přidá build-addon skript do vašeho package.jsonsouboru .

Sestavte doplněk:

npm run build-addon

Krok 2: Přidání kódu oznámení

Otevřete nativeWindowsAddon/addon.cc a aktualizujte jej tak, aby používal rozhraní API pro oznámení Windows App SDK. Vygenerovaná šablona obsahuje nezbytné hlavičky sady Windows SDK a Windows App SDK.

Přidejte zahrnutí pro rozhraní API pro oznámení:

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

Přidejte funkci, která zobrazuje oznámení systému 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();
    }
}

Zaregistrujte funkci v Init metodě:

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

Krok 3: Sestavení doplňku

npm run build-addon

Krok 4: Otestování oznámení

Otevřete src/index.js a načtěte doplněk:

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

Přidání testovacího volání:

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

Spuštění aplikace:

npm start

Mělo by se zobrazit oznámení systému Windows.

Krok 5: Aktualizace identity ladění

Při každé úpravě appxmanifest.xmlspusťte:

npx winapp node add-electron-debug-identity

Další kroky