この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 5093|答える: 2

[出典] [WebView2] (4) WebとWinFormは関数メソッドを互いに呼び出します

[リンクをコピー]
掲載地 2022/09/29 21:03:59 | | | |
要件:前回の記事では、ウェブインターフェースとWinFormアプリケーションが互いにメッセージを送るために通信する方法について書いていましたが、メッセージのみが正常に送信され、応答情報は取得できませんでした。 もしC#クライアントがWebの関数メソッドを呼び出して返還結果を取得したらどうでしょうか? ウェブはどうやってC#コードを呼び出して返り値を取得しているのでしょうか?

復習:

[WebView2] (1) Microsoft Edge WebView2技術の初期導入
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinFormがWebView2を導入し、ウェブコンテンツを表示
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) WebとWinFormアプリケーション間の双方向通信
https://www.itsvse.com/thread-10364-1-1.html
まずは実装のレンダリングを見てみましょう。ウェブサイトではWinFormアプリケーションと呼ばれていますクリップボードデータの取得WinFormアプリウェブのabcメソッドを呼び出してリターン値を取得します次のように:



C#はWeb関数メソッドを呼び出します

このシナリオはウェブ上でJavaScriptを実行する方法を示しています。 この方法では、ホストアプリが実行するJavaScriptコードを指定し、ExecuteScriptAsyncでコードをウェブに渡します。 ExecuteScriptAsync関数はJavaScriptの結果をExecuteScript呼び出し元に返します。

Angular index.htmlページコードは以下の通りです:

フロントエンドは主にabc関数を定義します。

Winformはウェブのabc関数を以下のコードで呼び出します:



ウェブページはC#関数メソッドを呼び出します

ネイティブオブジェクトをウェブに渡すこと。 ウェブからオブジェクトを呼び出す方法が呼び出されます。

メソッド呼び出しを表すメッセージを使用するには、AddHostObjectToScript APIをご利用ください。 大まかに言えば、このAPIはネイティブ(ホスト)オブジェクトをウェブに公開し、プロキシとして機能させることを可能にします。 window.chrome.webview.hostObjectsを使ってください。 {name}>a0>これらのオブジェクトにアクセスしてください。 参考文献:ハイパーリンクのログインが見えます。

ウェブページに新しいボタンを作成し、C#コードを呼び出してシステムの現在のクリップボードのデータを取得するボタンをクリックしてください。

Angular app.component.htmlコードは以下の通りです。

app.component.tsコードは以下の通りです:

フロントエンドのJSコードには同期呼び出しと非同期呼び出しがあります。

c# WebView2HostObjectホストオブジェクトを以下のコードで定義します:


注意:カスタムWebView2HostObjectクラスにはタグ付けが必要です[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]プロパティでなければ、JSはクラスにアクセスできません。

次に、AddHostObjectToScript(String,Object)で新たに定義されたインスタンスを追加し、以下のコードで行います。

最後に、フロントエンドのボタンをクリックしてクリップボードデータを表示します。効果は以下の通りです:



(終わり)





先の:WebView2 (3) WebとWinFormアプリケーション間の双方向通信
次に:【ターン】CURLコマンドはプロキシを使い、プロキシが導入されます
掲載地 2022/10/08 15:07:01 |
覚えてみろ
掲載地 2023/03/31 13:30:38 |
そこから学びました。共有してくれてありがとうございます
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com