CODEKILLER

반응형

1. C#에서 Javascript 호출 예시

// C# 코드 (송신)
webView.CoreWebView2.PostWebMessageAsString("전달하려는 string");

// Javascript 코드 (수신)
window.chrome.webview.addEventListener('message', evt => {
    //evt.data를 수신하여 사용.
});

2. C#에서 Javascript 함수 직접호출

// ExecuteScriptAsync 이용하여 javascript함수를 호출
// 함수명은 "JsFunction()", 이런식으로 추가합니다.
var ret = await webView.CoreWebView2.ExecuteScriptAsync("javascript 함수명");

// javascript function
function JsFunction()
{
    // 특정행위.
}

3. Javascript에서 postMessage를 이용하는 방식외에 C#에서 제공한 함수 직접호출

// C# 코드
// 생성자 및 Loaded함수에 AddHostObjectToScript 설정
await webView.EnsureCoreWebView2Async();
webView.CoreWebView2.AddHostObjectToScript("Communicator", new Communicator());

// Communicator Class 의 작성
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class Communicator
{
    public string Func(string param)
    {
        return JsonConvert.SerializeObject(new
        {
            result = param,
            success = true
        });
    }
}

4. Javascript에서 Communicator를 이용한 호출

// Javascript에서 C#코드 비동기 호출
async function 비동기호출() {
    const bridge = chrome.webview.hostObjects.bridge;
    const prop = await bridge.AnotherObject.Prop;
}

// Javascript에서 C#코드 동기 호출
function 동기호출() {
    const bridge = chrome.webview.hostObjects.sync.bridge;
    var ret = bridge.Func("param string");
}

 

https://learn.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2.addhostobjecttoscript?view=webview2-dotnet-1.0.1462.37 

 

CoreWebView2.AddHostObjectToScript(String, Object) Method (Microsoft.Web.WebView2.Core)

Adds the provided host object to script running in the WebView with the specified name.

learn.microsoft.com

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band