Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini menunjukkan cara membuat addon asli C++ yang memanggil API pemberitahuan SDK Aplikasi Windows di aplikasi Electron Anda. Ini adalah titik awal yang bagus untuk memahami addon asli sebelum menyelami skenario yang lebih kompleks.
Prasyarat
Sebelum memulai panduan ini, pastikan Anda telah:
- Menyelesaikan penyiapan lingkungan pengembangan
Langkah 1: Membuat Addon Asli C++
Mari kita buat addon asli menggunakan C++ dan node-addon-api. Ini menyediakan akses langsung ke API Windows dengan performa maksimum.
npx winapp node create-addon
Note
Perintah ini mungkin meminta Anda untuk menginstal alat Python atau Visual Studio yang diperlukan jika Anda belum menginstalnya.
Ini membuat sebuah folder nativeWindowsAddon/ dengan:
-
nativeWindowsAddon.cc- Kode C++ Anda yang akan memanggil API Windows -
binding.gyp- Pengaturan build untuk node-gyp
Perintah ini juga menginstal dependensi pengembangan yang diperlukan (nan, node-addon-api, node-gyp) dan menambahkan skrip build-nativeWindowsAddon ke package.json.
{
"scripts": {
"build-nativeWindowsAddon": "node-gyp clean configure build --directory=nativeWindowsAddon"
}
}
Templat yang dihasilkan mencakup contoh fungsi ShowNotification yang menggunakan API pemberitahuan SDK Windows. Mari kita verifikasi semuanya disiapkan dengan benar dengan membangun addon:
# Build the C++ addon
npm run build-nativeWindowsAddon
Note
Anda juga dapat membuat addon C# menggunakan npx winapp node create-addon --template cs. Addon C# menggunakan node-api-dotnet. Lihat panduan lain untuk membuat addon atau dokumentasi perintah lengkap untuk opsi lainnya.
Langkah 2: Uji Addon yang dihasilkan
Mari kita periksa apakah addon yang dibuat berfungsi dengan memanggilnya dari proses utama. Buka src/index.js:
- Tambahkan impor addon bersama dengan pernyataan lainnya
requiredi bagian paling atas.
const nativeWindowsAddon = require('../nativeWindowsAddon/build/Release/nativeWindowsAddon.node');
- Panggil fungsi pemberitahuan pada akhir dari fungsi
createWindow().
const createWindow = () => {
// ... existing window creation code ...
// Test the Windows SDK notification
nativeWindowsAddon.showNotification(
'Hello from Electron!',
'This notification uses the Windows SDK.'
);
};
Sebelum API pemberitahuan berfungsi, Anda perlu memastikan aplikasi Anda berjalan dengan identitas. Menjalankan:
npx winapp node add-electron-debug-identity
Note
Perintah ini sudah menjadi bagian dari skrip yang postinstall kami tambahkan dalam panduan penyiapan, sehingga berjalan secara otomatis setelah npm install. Namun, Anda perlu menjalankannya secara manual setiap kali Anda memodifikasi Package.appxmanifest, memperbarui aset aplikasi, atau menginstal ulang dependensi.
Sekarang jalankan aplikasi Anda:
npm start
Anda akan melihat pemberitahuan muncul! 🎉 Addon yang dihasilkan langsung bisa digunakan.
⚠️ Masalah umum: Aplikasi Crash atau Jendela Kosong (klik untuk memperluas)
Diketahui ada bug pada Windows dengan aplikasi Electron yang dikemas secara sparse, yang menyebabkan aplikasi mengalami crash saat startup atau gagal merender konten web. Masalah ini telah diperbaiki di Windows tetapi belum disebarluaskan ke semua perangkat.
Lihat penyiapan lingkungan pengembangan untuk solusinya.
Langkah 3: Upgrade ke Notifikasi SDK Aplikasi Windows
Sekarang setelah kami mengonfirmasi bahwa addon berfungsi, mari kita tingkatkan untuk menggunakan API pemberitahuan modern SDK Aplikasi Windows (Microsoft.Windows.AppNotifications), yang memberikan pengalaman pengembang yang lebih baik dan lebih banyak fitur. Kami sudah menyiapkan SDK Aplikasi Windows saat menjalankan perintah init dari langkah-langkah penyiapan.
Buka nativeWindowsAddon/nativeWindowsAddon.cc dan ganti seluruh konten dengan kode ini:
#include <napi.h>
#include <windows.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Microsoft.Windows.AppNotifications.h>
#include <winrt/Microsoft.Windows.AppNotifications.Builder.h>
using namespace winrt;
using namespace Microsoft::Windows::AppNotifications;
using namespace Microsoft::Windows::AppNotifications::Builder;
// Function to display a Windows App SDK notification
void ShowNotification(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
try {
// Get arguments from JavaScript (title and message)
if (info.Length() < 2 || !info[0].IsString() || !info[1].IsString()) {
Napi::TypeError::New(env, "Expected two string arguments: title and message").ThrowAsJavaScriptException();
return;
}
std::string title = info[0].As<Napi::String>();
std::string message = info[1].As<Napi::String>();
// Convert to wide strings
std::wstring wTitle(title.begin(), title.end());
std::wstring wMessage(message.begin(), message.end());
// Use AppNotificationBuilder for a cleaner API
AppNotificationBuilder builder;
builder.AddText(wTitle);
builder.AddText(wMessage);
AppNotification notification = builder.BuildNotification();
AppNotificationManager::Default().Show(notification);
} catch (const winrt::hresult_error& ex) {
Napi::Error::New(env, winrt::to_string(ex.message())).ThrowAsJavaScriptException();
} catch (const std::exception& ex) {
// Handle exceptions and throw back to JavaScript
Napi::Error::New(env, ex.what()).ThrowAsJavaScriptException();
} catch (...) {
Napi::Error::New(env, "Unknown error occurred").ThrowAsJavaScriptException();
}
}
// Initialize the module
Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set(Napi::String::New(env, "showNotification"), Napi::Function::New(env, ShowNotification));
return exports;
}
NODE_API_MODULE(addon, Init)
Perubahan utama di sini adalah beralih dari namespace
Langkah 4: Membangun kembali dan Menguji
Sekarang bangun ulang addon dengan kode yang diperbarui:
npm run build-nativeWindowsAddon
Perbarui pesan di src/index.js untuk mencerminkan perubahan:
nativeWindowsAddon.showNotification(
'Hello from Electron!',
'This notification is powered by the Windows App SDK!'
);
Jalankan aplikasi Anda lagi:
npm start
Anda akan melihat pemberitahuan yang diperbarui menggunakan API SDK Aplikasi Windows modern!
Langkah Selanjutnya
Selamat! Anda berhasil membuat addon C++ asli yang memanggil API SDK Aplikasi Windows! 🎉
Sekarang Anda siap untuk:
- Mengemas Aplikasi Anda untuk Distribusi - Membuat paket MSIX yang dapat Anda distribusikan
Atau jelajahi panduan lain:
- Buat Addon Phi Silica - Pelajari cara menggunakan API AI Windows di addon C#
- Buat Addon WinML - Pelajari cara menggunakan Windows Pembelajaran Mesin di addon C#
- Ikhtisar Memulai - Kembali ke panduan utama
Sumber Daya Tambahan
- Dokumentasi CLI winapp - Referensi CLI lengkap
- Contoh Aplikasi Elektron - Contoh kerja lengkap dengan addon C++
- node-addon-api - Pustaka interoperabilitas C++ ↔ JavaScript
- SDK Aplikasi Windows Sampel - Pengumpulan sampel SDK Aplikasi Windows
Windows developer