Compartilhar via


Criando um complemento de notificação do C++ para o Electron

Este guia mostra como criar um complemento nativo do C++ que usa as APIs de notificação de Windows App SDK em seu aplicativo Electron. Este é um ótimo ponto de partida para entender os complementos nativos antes de se aprofundar em cenários mais complexos.

Pré-requisitos

Etapa 1: Criar um complemento nativo do C++

Use a CLI do winapp para gerar um modelo de complemento C++:

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

Isso cria uma nativeWindowsAddon/ pasta com:

  • addon.cc - Seu código C++ que chamará APIs do Windows
  • binding.gyp – Configuração de build para compilação nativa

O comando também adiciona um script build-addon ao seu package.json.

Crie o complemento:

npm run build-addon

Etapa 2: Adicionar código de notificação

Abra nativeWindowsAddon/addon.cc e atualize-o para usar as APIs de notificação de Windows App SDK. O modelo gerado inclui o SDK do Windows necessário e os cabeçalhos do Windows App SDK.

Adicionar inclusões para a API de notificação:

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

Adicione uma função que mostra uma notificação do 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();
    }
}

Registre a função no Init método:

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

Etapa 3: Criar o complemento

npm run build-addon

Etapa 4: Testar a notificação

Abra src/index.js e carregue o complemento:

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

Adicione uma chamada de teste:

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

Execute o aplicativo:

npm start

Você deve ver uma notificação do Windows aparecer.

Etapa 5: Atualizar a identidade de depuração

Sempre que você modificar appxmanifest.xml, execute:

npx winapp node add-electron-debug-identity

Próximas Etapas