Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 5093|Jawab: 2

[Sumber] [WebView2] (4) Web dan WinForm memanggil metode fungsi satu sama lain

[Salin tautan]
Diposting pada 29/09/2022 21.03.59 | | | |
Persyaratan: Artikel sebelumnya menulis tentang cara mengimplementasikan antarmuka web dan aplikasi WinForm untuk berkomunikasi satu sama lain untuk mengirim pesan, tetapi hanya pesan yang berhasil dikirim, dan informasi respons tidak dapat diperoleh. Bagaimana jika klien C# memanggil metode fungsi web untuk mendapatkan hasil yang dikembalikan? Dan bagaimana web memanggil kode C# dan mendapatkan nilai yang dikembalikan?

Resensi:

[WebView2] (1) Pengenalan awal teknologi Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm memperkenalkan WebView2 untuk menampilkan konten web
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Komunikasi dua arah antara aplikasi Web dan WinForm
https://www.itsvse.com/thread-10364-1-1.html
Pertama, mari kita lihat rendering implementasi, situs web memanggil aplikasi WinFormMendapatkan data clipboard, Aplikasi WinFormPanggil metode abc web untuk mendapatkan nilai pengembalianSebagai berikut:



C# memanggil metode fungsi Web

Skenario ini menunjukkan cara menjalankan JavaScript di web. Dalam metode ini, aplikasi host menentukan kode JavaScript yang akan dijalankan dan meneruskan kode ke web dengan ExecuteScriptAsync. Fungsi ExecuteScriptAsync mengembalikan hasil JavaScript ke pemanggil ExecuteScript.

Kode halaman Angular index.html adalah sebagai berikut:

Frontend terutama mendefinisikan fungsi abc.

Winform memanggil fungsi abc web dengan kode berikut:



Halaman web memanggil metode fungsi C#

Meneruskan objek asli ke web. Metode memanggil objek dari web kemudian dipanggil.

Untuk menggunakan pesan yang mewakili panggilan metode, gunakan API AddHostObjectToScript. Pada tingkat tinggi, API ini memungkinkan objek asli (host) untuk diekspos ke web dan bertindak sebagai proxy. Gunakan window.chrome.webview.hostObjects. {name}>a0> mengakses objek ini. Dokumentasi Referensi:Login hyperlink terlihat.

Buat tombol baru di halaman web, klik tombol untuk memanggil kode C# untuk mendapatkan data clipboard sistem saat ini.

Kode Angular app.component.html adalah sebagai berikut:

Kode app.component.ts adalah sebagai berikut:

Kode JS front-end memiliki panggilan sinkron dan panggilan asinkron.

c# menentukan objek host WebView2HostObject dengan kode berikut:


Catatan: Kelas WebView2HostObject kustom harus ditandai[KelasAntarmuka (KelasAntarantarHuruKe.Otomatis Dual)]、[Terlihat(benar)]properti, jika tidak, JS tidak akan dapat mengakses kelas.

Kemudian tambahkan instance yang baru ditentukan melalui AddHostObjectToScript(String,Object) dengan kode berikut:

Terakhir, klik tombol di ujung depan untuk mendapatkan data clipboard, efeknya adalah sebagai berikut:



(Akhir)





Mantan:WebView2 (3) Komunikasi dua arah antara aplikasi Web dan WinForm
Depan:【Turn】 Perintah CURL menggunakan proxy dan proxy diperkenalkan
Diposting pada 08/10/2022 15.07.01 |
Belajar
Diposting pada 31/03/2023 13.30.38 |
Belajar darinya, terima kasih telah berbagi
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com