cari
Rumahhujung hadapan webtutorial jsBuat aplikasi nod desktop silang platform dengan elektron

Buat aplikasi nod desktop silang platform dengan elektron

Takeaways Key

Saya menghargai betapa kompleksnya membangun dan mengekalkan aplikasi desktop asli dan dapat memahami mengapa syarikat mendorong pengguna ke arah web atau versi silang platform. Terdapat banyak pilihan untuk mencapai ini selama beberapa dekad. Flash, Air, Java dan Sliverlight adalah semua pilihan yang menjanjikan keupayaan ini dengan pelbagai tahap kejayaan.

Masalah utama dengan pilihan ini ialah mereka secara umumnya melibatkan pembelajaran bahasa lain (yang mengalahkan titik) atau pengguna terpaksa memasang plugin yang dilanda kestabilan, prestasi dan masalah keselamatan.

kita semua tahu kuasa teknologi JavaScript dan Web dan telah melihat gelombang pilihan untuk membangun dan membungkus aplikasi desktop silang platform menggunakan pengetahuan ini.

Electron, oleh GitHub adalah satu pilihan, tetapi kerana saya sudah dengan senang hati menggunakan beberapa aplikasi yang dibina dengannya, nampaknya pilihan yang baik untuk disiasat. Selepas dua tahun pembangunan, termasuk satu perubahan nama (dari Atom Shell), Electron baru -baru ini mencapai versi 1.0, sentiasa menjadi peristiwa penting dalam kewujudan projek. Apa masa yang lebih baik untuk melihat apa yang mampu.

Memasang elektron

Electron mempunyai projek permulaan yang cepat dan siaran pra-bina yang ada, tetapi mari menyelam lurus di ujung dalam dan pasang elektron melalui NPM:

atau untuk pencinta homebrew mac, melalui cask:

<span>npm install electron-prebuilt -g
</span>

mana pilihan yang anda ikuti, anda harus berakhir dengan binari elektron yang boleh dilaksanakan.

Buat aplikasi nod desktop silang platform dengan elektron

Aplikasi ini hanya digunakan untuk mengikat dan menjalankan projek akhir anda, bukan untuk mencipta satu. Untuk ini anda boleh menggunakan mana -mana editor teks standard atau IDE.

Projek elektron memerlukan tiga fail:

    index.html: Halaman web diberikan secara lalai.
  • main.js: Memulakan aplikasi dan membuat tetingkap penyemak imbas untuk menjadikan HTML.
  • pakej.json: Menyenaraikan kebergantungan aplikasi, data meta dan fail yang diperlukan.

Buat aplikasi nod desktop silang platform dengan elektron anda memerlukan wira

Dalam contoh ini saya akan membuat aplikasi mudah yang menghubungkan ke API Marvel, menarik 25 pahlawan super dan memaparkan nama dan imej kecil mereka. Ia akan memaparkan pemberitahuan sistem apabila proses selesai dan mempunyai ikon aplikasi seperti OS. Pengguna akhir tidak akan menyedari bagaimana permohonan itu dibuat atau dapat melihat kod sumber.

anda boleh mencari projek akhir di GitHub.

buka pakej.json dan tambahkan yang berikut:

Ini adalah fail pakej.json standard dan mengikuti format dan pilihan yang sama seperti node.js. Di sini menetapkan nama aplikasi, versi, fail javascript utama dan kebergantungan.
brew <span>install Caskroom/cask/electron
</span>

Jalankan NPM Pasang selepas menambahkan ini untuk memastikan anda mempunyai dependensi dipasang.

main.js mengendalikan interaksi antara sistem operasi tuan rumah dan kod JavaScript anda. Ini akan menjadi contoh mudah, anda boleh mengetahui lebih lanjut mengenai apa yang mungkin dalam dokumentasi Electron.

Pertama, mari kita sediakan keperluan yang diperlukan (iaitu elektron), buat aplikasi, tetingkap penyemak imbas asli dan tempat letak tetingkap utama untuk bekerja dengan.

Pemegang seterusnya berhenti aplikasi jika Windows ditutup. Jika platform adalah OS X, aplikasi biasanya tetap terbuka selepas semua tingkap ditutup dan pengguna biasanya akan berhenti secara eksplisit, jadi mengendalikan kes penggunaan.
<span>{
</span>  <span>"name": "hero-browser",
</span>  <span>"version": "0.1.0",
</span>  <span>"main": "main.js",
</span>  <span>"dependencies": {
</span>    <span>"dotenv": "^2.0.0",
</span>    <span>"md5": "^2.1.0"
</span>  <span>}
</span><span>}
</span>

Setelah elektron diasaskan, buat tetingkap penyemak imbas dan muatkan kod aplikasi. Jika tetingkap ditutup, dereference objek tetingkap.
<span>'use strict';
</span>
<span>const electron = require('electron');
</span><span>const app = electron.app;  // Module to control application life.
</span><span>const BrowserWindow = electron.<span>BrowserWindow</span>;  // Module to create native browser window.
</span><span>var mainWindow = null;
</span>

Buat subfolder yang dipanggil App. Dalam app/index.html tambahkan rujukan kepada stylesheets dan fail JavaScript yang diperlukan dan sediakan struktur HTML antara muka.
app<span>.on('window-all-closed', function() {
</span>    <span>if (process.platform != 'darwin') {
</span>        app<span>.quit();
</span>    <span>}
</span><span>});
</span>

Buat apl/css/index.css dan tambahkan beberapa CSS asas untuk membantu susun atur.
app<span>.on('ready', function() {
</span>  mainWindow <span>= new BrowserWindow({width: 800, height: 600});
</span>  mainWindow<span>.loadURL('file://' + __dirname + '/app/index.html');
</span>
  mainWindow<span>.on('closed', function() {
</span>    mainWindow <span>= null;
</span>  <span>});
</span><span>});
</span>

Buat apl/js/index.js. Ini akan menjadi tempat kebanyakan fungsi aplikasi berlaku. Mulakan dengan menubuhkan kebergantungan dan pembolehubah yang diperlukan:
<span><span>
</span><span><span><span>></span>
</span><span><span><span>></span>
</span>    <span><span><span><meta> charset<span>="UTF-8"</span>></span>
</span>    <span><span><span><title>></title></span>Marvel Super Hero Browser<span><span></span>></span>
</span>    <span><span><span><link> href<span>="css/index.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span>/></span>
</span><span><span><span></span>></span>
</span><span><span><span>></span>
</span>    <span><span><span><h1 id="gt">></h1></span>Marvel Super Hero Browser<span><span></span>></span>
</span>    <span><span><span><em>></em></span>Thanks to Marvel for their API.<span><span></span>></span>
</span>
    <span><span><span><div> id<span>="character_list"</span>><span><span></span></span>
</div></span>></span>
</span>
    <span><span><span><script> src<span >="js/index.js"</script></span>></span><span><span></span>></span>
</span><span><span><span></span>></span>
</span><span><span><span></span>></span>
</span></span></span></span></span></span></span></span></span></span>
<span>npm install electron-prebuilt -g
</span>

API Marvel adalah API yang menyeronokkan untuk digunakan, tetapi ia adalah pengesahan dan struktur data boleh mengelirukan. Daftar di sini untuk kunci dan ikuti arahan ini untuk mendapatkan tiga parameter yang diperlukan di atas. Kekunci awam dan peribadi yang diperlukan untuk pengesahan disimpan dalam fail .env dan diakses menggunakan pakej dotenv.

brew <span>install Caskroom/cask/electron
</span>

Nilai had menetapkan berapa banyak rekod yang diminta dan terdapat parameter lain yang boleh ditetapkan.

Jika anda lebih suka melangkau menyambung dan mengesahkan dengan API Marvel, maka saya membuat fail data JSON untuk anda gunakan sebaliknya. Gantikan kod JavaScript di atas dengan:

<span>{
</span>  <span>"name": "hero-browser",
</span>  <span>"version": "0.1.0",
</span>  <span>"main": "main.js",
</span>  <span>"dependencies": {
</span>    <span>"dotenv": "^2.0.0",
</span>    <span>"md5": "^2.1.0"
</span>  <span>}
</span><span>}
</span>

seterusnya Buat pembolehubah HTML dan tempat pemegang letak yang diperlukan untuk mengeluarkan setiap aksara ke dalam div aksara:

<span>'use strict';
</span>
<span>const electron = require('electron');
</span><span>const app = electron.app;  // Module to control application life.
</span><span>const BrowserWindow = electron.<span>BrowserWindow</span>;  // Module to create native browser window.
</span><span>var mainWindow = null;
</span>

Seterusnya, buat panggilan ke API dan memproses respons, menggerudi ke dalam struktur JSON untuk senarai sebenar aksara di dalam resp.data.results.

Buat elemen HTML untuk setiap watak, memasuki mereka ke Watak_LIST. Imej dalam API Marvel dipisahkan ke dalam nama fail dan lanjutan. Sekiranya tidak ada imej yang tersedia, ia memaparkan imej 'tiada imej yang tersedia', kita boleh mengendalikan ini, tetapi tidak akan dalam contoh ini.

Apabila gelung selesai, paparkan pemberitahuan sistem, kaedah rapat dan mengendalikan kesilapan yang berpotensi yang menghubungkan ke API.

app<span>.on('window-all-closed', function() {
</span>    <span>if (process.platform != 'darwin') {
</span>        app<span>.quit();
</span>    <span>}
</span><span>});
</span>

Jalankan permohonan dengan melaksanakan arahan di bawah dalam direktori root projek:

app<span>.on('ready', function() {
</span>  mainWindow <span>= new BrowserWindow({width: 800, height: 600});
</span>  mainWindow<span>.loadURL('file://' + __dirname + '/app/index.html');
</span>
  mainWindow<span>.on('closed', function() {
</span>    mainWindow <span>= null;
</span>  <span>});
</span><span>});
</span>

Buat aplikasi nod desktop silang platform dengan elektron

Pembungkusan Aplikasi

Pembungkusan kod ke dalam aplikasi 'asli' adalah mudah tetapi memerlukan beberapa keping. Pertama ikon untuk lencana aplikasi. Jenis rupa dan fail ini bergantung kepada sistem operasi yang anda targetkan, tetapi inilah ikon yang saya gunakan, diambil dari aplikasi Android rasmi Marvel.

Buat aplikasi nod desktop silang platform dengan elektron NOTA: Kami menggunakan sifat Marvel yang berhak cipta di sini untuk tujuan ilustrasi. Tolong jangan mengedarkannya sebagai anda sendiri!

Saya kemudian menggunakan iconverticons.com/online/ untuk menukar PNG ke fail ikon Mac, tetapi ada alat lain yang tersedia.

Cara paling mudah untuk membungkus projek ini adalah dengan menggunakan modul NPM Pemasangan Elektron (nota: ini perlu dipasang secara berasingan). Ia boleh menjana binari yang besar, untuk aplikasi desktop ini mungkin tidak menjadi masalah, tetapi jika ia, pilihan lain diterangkan di sini.

Jika anda pembungkusan untuk Windows pada platform bukan Windows, anda perlu memasang wain, yang merupakan kebergantungan yang besar.

mereka berkumpul, inilah cara membuat permohonan permohonan. Dalam folder projek anda, jalankan (

menggantikan dengan nilai yang relevan untuk projek anda

):

mengikut urutan, parameter ini ditetapkan:
<span><span>
</span><span><span><span>></span>
</span><span><span><span>></span>
</span>    <span><span><span><meta> charset<span>="UTF-8"</span>></span>
</span>    <span><span><span><title>></title></span>Marvel Super Hero Browser<span><span></span>></span>
</span>    <span><span><span><link> href<span>="css/index.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span>/></span>
</span><span><span><span></span>></span>
</span><span><span><span>></span>
</span>    <span><span><span><h1 id="gt">></h1></span>Marvel Super Hero Browser<span><span></span>></span>
</span>    <span><span><span><em>></em></span>Thanks to Marvel for their API.<span><span></span>></span>
</span>
    <span><span><span><div> id<span>="character_list"</span>><span><span></span></span>
</div></span>></span>
</span>
    <span><span><span><script> src<span >="js/index.js"</script></span>></span><span><span></span>></span>
</span><span><span><span></span>></span>
</span><span><span><span></span>></span>
</span></span></span></span></span></span></span></span></span></span>
  • Folder Projek.
  • nama aplikasi yang dihasilkan.
  • Platform: Ini adalah Win32 untuk Windows, Linux, Darwin untuk Vanilla Mac OS X dan MAS untuk pelepasan Mac App Store. Menetapkan semua, akan menghasilkan binari untuk semua platform.
  • Senibina: IA32 dan X64 untuk seni bina CPU 32 dan 64 bit, atau semua.
  • versi elektron untuk digunakan.
  • lokasi binari output dan lebih baik untuk menimpa fail sedia ada.
  • ikon untuk digunakan.

Nota: Semua parameter boleh dipisahkan koma untuk pelbagai nilai dan jika anda ingin menghasilkan semua platform dan seni bina, anda boleh menggantikan parameter yang berkaitan dengan -semua.

Buat aplikasi nod desktop silang platform dengan elektron

Langkah selanjutnya

Ini adalah contoh mudah untuk menggambarkan potensi elektron dan banyak lagi yang mungkin. Mengetepikan apa yang dapat dicapai dengan JavaScript tulen, anda mungkin ingin melihat:

    penyerahan kedai aplikasi Mac.
  • menggunakan alat dev chrome.
  • akses papan klip.
  • Membuat alat bar menu aplikasi.
  • Explorer API Interaktif Baru Electron.
  • Devtron, lanjutan kepada alat dev Chrome, khususnya untuk pembangunan elektron.
masih ragu -ragu? Saya ingin menunjukkan bahawa sambil menulis artikel ini di Atom, saya berkomunikasi dengan editor artikel ini di Slack dan menguji permohonan dalam bekas Docker yang dibuat dalam Kitematik. Kesemuanya adalah aplikasi yang dihasilkan oleh elektron. Ok, mereka mempunyai masalah mereka, tetapi itu cukup mengagumkan!

Saya suka mendengar tentang aplikasi yang anda bina dengan elektron dalam komen di bawah.

soalan yang sering ditanya mengenai aplikasi nod desktop dengan elektron

Apakah prasyarat untuk membangunkan aplikasi desktop dengan elektron? Node.js adalah runtime JavaScript yang membolehkan anda menjalankan JavaScript pada pelayan anda atau mesin anda, sementara NPM adalah pengurus pakej untuk pakej Node.js. Anda boleh memuat turun Node.js dan NPM dari laman web rasmi Node.js. Sebaik sahaja anda memasangnya, anda boleh memasang elektron menggunakan npm.

Bagaimana saya memasang elektron pada sistem saya?

Memasang elektron agak mudah. Sebaik sahaja anda mempunyai Node.js dan NPM yang dipasang, anda boleh memasang elektron secara global pada sistem anda menggunakan arahan berikut di terminal atau command prompt: NPM Install -g Electron. Perintah ini memasang elektron secara global, membolehkan anda mengaksesnya dari mana -mana direktori pada sistem anda.

Bagaimana saya membuat projek elektron baru?

Untuk membuat projek elektron baru, pertama, membuat direktori baru untuk projek anda. Navigasi ke direktori ini di terminal anda atau command prompt, dan kemudian mulakan projek node.js baru menggunakan perintah NPM init. Perintah ini mewujudkan fail pakej.json baru dalam direktori projek anda. Anda kemudian boleh memasang elektron dalam projek anda menggunakan perintah NPM Install -Save Electron.

Apakah struktur aplikasi elektron? pakej.json, main.js, dan index.html. Fail Package.json mengandungi metadata mengenai permohonan anda dan kebergantungannya. Fail Main.js adalah titik masuk aplikasi anda, di mana anda boleh mengawal peristiwa kitaran hayat aplikasi anda. Fail index.html adalah laman web yang dipaparkan apabila aplikasi anda bermula. terminal atau arahan arahan, dan kemudian gunakan elektron perintah .. Perintah ini memulakan aplikasi anda.

Bagaimana saya boleh membungkus aplikasi elektron saya untuk pengedaran? Boleh menggunakan modul seperti pembungkus elektron atau pembina elektron. Modul -modul ini membolehkan anda membungkus aplikasi anda ke dalam fail yang boleh dilaksanakan yang boleh dijalankan di pelbagai platform. .js modul dalam aplikasi elektron anda. Electron menggunakan runtime node.js, jadi anda boleh menggunakan modul node.js dalam aplikasi anda.

Bolehkah saya menggunakan teknologi web dalam aplikasi elektron saya? permohonan elektron anda. Elektron pada dasarnya adalah penyemak imbas web yang membolehkan anda membuat aplikasi desktop menggunakan teknologi web seperti HTML, CSS, dan JavaScript. Menggunakan alat pemaju krom. Elektron dibina di atas kromium, jadi ia termasuk alat pemaju terbina dalam yang boleh anda gunakan untuk debug aplikasi anda. Membina aplikasi silang platform dengan elektron. Elektron membolehkan anda membina aplikasi yang berjalan pada Windows, MacOS, dan Linux.

Atas ialah kandungan terperinci Buat aplikasi nod desktop silang platform dengan elektron. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript: meneroka serba boleh bahasa webJavaScript: meneroka serba boleh bahasa webApr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Evolusi JavaScript: Trend Semasa dan Prospek Masa DepanEvolusi JavaScript: Trend Semasa dan Prospek Masa DepanApr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Demystifying JavaScript: Apa yang berlaku dan mengapa pentingDemystifying JavaScript: Apa yang berlaku dan mengapa pentingApr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Adakah Python atau JavaScript lebih baik?Adakah Python atau JavaScript lebih baik?Apr 06, 2025 am 12:14 AM

Python lebih sesuai untuk sains data dan pembelajaran mesin, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya, dan sesuai untuk analisis data dan pembangunan web. 2. JavaScript adalah teras pembangunan front-end. Node.js menyokong pengaturcaraan sisi pelayan dan sesuai untuk pembangunan stack penuh.

Bagaimana saya memasang javascript?Bagaimana saya memasang javascript?Apr 05, 2025 am 12:16 AM

JavaScript tidak memerlukan pemasangan kerana ia sudah dibina dalam pelayar moden. Anda hanya memerlukan editor teks dan penyemak imbas untuk memulakan. 1) Dalam persekitaran penyemak imbas, jalankan dengan memasukkan fail HTML melalui tag. 2) Dalam persekitaran Node.js, selepas memuat turun dan memasang node.js, jalankan fail JavaScript melalui baris arahan.

Bagaimana cara menghantar pemberitahuan sebelum tugas bermula di kuarza?Bagaimana cara menghantar pemberitahuan sebelum tugas bermula di kuarza?Apr 04, 2025 pm 09:24 PM

Cara Menghantar Pemberitahuan Tugas di Quartz terlebih dahulu Apabila menggunakan pemasa kuarza untuk menjadualkan tugas, masa pelaksanaan tugas ditetapkan oleh ekspresi cron. Sekarang ...

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa