在構建完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