Partager via


Création d’un module complémentaire de notification C++ pour Electron

Ce guide vous montre comment créer un module complémentaire natif C++ qui utilise les API de notification Windows App SDK dans votre application Electron. Il s’agit d’un excellent point de départ pour comprendre les compléments natifs avant de vous plonger dans des scénarios plus complexes.

Prerequisites

Étape 1 : Créer un complément natif C++

Utilisez l’interface CLI winapp pour générer un modèle de complément C++ :

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

Cela crée un nativeWindowsAddon/ dossier avec :

  • addon.cc - Votre code C++ qui appelle les API Windows
  • binding.gyp - Configuration de build pour la compilation native

La commande ajoute également un build-addon script à votre package.json.

Générez le module complémentaire :

npm run build-addon

Étape 2 : Ajouter un code de notification

Ouvrez nativeWindowsAddon/addon.cc et mettez-le à jour pour utiliser les API de notification Windows App SDK. Le modèle généré inclut le Kit de développement logiciel (SDK) Windows nécessaire et les en-têtes Windows App SDK.

Ajoutez des éléments pour l’API de notification :

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

Ajoutez une fonction qui affiche une notification 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();
    }
}

Inscrivez la fonction dans la Init méthode :

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

Étape 3 : Générer le module complémentaire

npm run build-addon

Étape 4 : Tester la notification

Ouvrez src/index.js et chargez le module complémentaire :

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

Ajoutez un appel de test :

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

Exécutez l’application :

npm start

Une notification Windows doit s’afficher.

Étape 5 : Mettre à jour l’identité de débogage

Chaque fois que vous modifiez appxmanifest.xml, exécutez :

npx winapp node add-electron-debug-identity

Étapes suivantes