从UIWebView事件侦听器迁移到WKWebView事件侦听器

时间:2018-01-26 15:13:18

标签: xamarin xamarin.forms xamarin.ios

所以我的目标是将所有现有的UIWebViews迁移到我们的Xamarin.iOS表单项目中的WKWebViews。我在迁移一些事情时遇到了一些困难。以下是一些例子:

添加事件监听器:

WebView.AddEventListener("javscriptRoutine", delegate (FireEventData arg) {
     //do something             
});

事件处理程序:

WebView.LoadStarted += (object sender, EventArgs e) => {
     //do something
};

这是UIWebView功能的2个示例,我很难迁移到WKWebView功能。在WKWebView类中是否有这两种方法的等效方法?

1 个答案:

答案 0 :(得分:2)

对于事件处理程序,您可以使用WKNavigationDelegate

wkWebView.NavigationDelegate = new MyWKWebViewDelegate();

public class MyWKWebViewDelegate : WKNavigationDelegate
{
    //Method will fire when data begins to load.
    public override void DidStartProvisionalNavigation(WKWebView webView, WKNavigation navigation)
    {

    }
}

要添加事件侦听器,是否要在iOS上使用JS方法?如果是这样,你可以尝试:

wkWebView.EvaluateJavaScript("JSMethodNameString", delegate (NSObject result, NSError error)
{

});