在構建完WebView webView = new WebView(url)后,即可調用RegisterJsObject方法來注冊一個js對象,從而前端的javascript就可以訪問這個對象,調用定義的方法。
public class CallbackObjectForJs{
public void showMessage(string msg){
MessageBox.Show(msg);
}
}
WebView webView = new WebView("http://localhost:8080");
webView.RegisterJsObject("callbackObj", new CallbackObjectForJs());
前端頁面javascript代碼即可訪問對象 callbackObj。
<script type="text/javascript">
callbackObj.showMessage('message from js');
</script >
注意:CallbackObjectForJs的showMessage方法首字母不能使大寫,不然javascript回調的時候找不到對應的方法。原因還在分析中。。。
PS:cefsharp是一個用於C#的瀏覽器控件(開源),C#自帶的控件在IE內核適配的問題上處理起來有點麻煩,同時如果網頁是重度使用javascript,那你可以考慮基於cef的各種瀏覽器控件,執行效率飆升。cefsharp的github:https://github.com/cefsharp/CefSharp
