委托方法`wkwebview createwebview`方法未被调用

发布于 01-19 13:09 字数 1230 浏览 2 评论 0原文

我正在将Xamarin(C#)代码用于MacOS应用程序。我创建了WKWebView并拥有插座,添加了导航和UI代表,并尝试打开URL。

导航委托方法被调用,但不确定我错过了UI委托方法未被调用。

任何帮助 /指导要寻找什么,或者我在这里遇到的错误。

这是相同的代码和图像:

public override void ViewDidLoad()
{
        base.ViewDidLoad();

        var url = new NSUrl("https://google.com");
        var request = new NSMutableUrlRequest(url);


        _webView.UIDelegate = new WebViewDelegate();
        _webView.NavigationDelegate = new WebViewNavigationDelegate();

        _webView.LoadRequest(request);

    }
}

internal class WebViewDelegate : WKUIDelegate
{
    public override WKWebView CreateWebView(WKWebView webView, WKWebViewConfiguration configuration, WKNavigationAction navigationAction, WKWindowFeatures windowFeatures)
    {
        Console.WriteLine("this doesn't reach");

        return null;
    }
}

internal class WebViewNavigationDelegate : WKNavigationDelegate
{
    public override void DidFinishNavigation(WKWebView webView, WKNavigation navigation)
    {
        Console.WriteLine("this prints");
    }
}

”在此处输入图像说明”

I am using Xamarin (C#) code for a macOS app. I have created the WKWebView and have outlet, added Navigation and UI delegates and trying to open an URL.

The Navigation delegates methods are getting called, but not sure what am I missing that UI Delegates method is not getting called.

Any help / guidance what to look for, or what mistake I am doing here, please.

Here's the code and image of same:

public override void ViewDidLoad()
{
        base.ViewDidLoad();

        var url = new NSUrl("https://google.com");
        var request = new NSMutableUrlRequest(url);


        _webView.UIDelegate = new WebViewDelegate();
        _webView.NavigationDelegate = new WebViewNavigationDelegate();

        _webView.LoadRequest(request);

    }
}

internal class WebViewDelegate : WKUIDelegate
{
    public override WKWebView CreateWebView(WKWebView webView, WKWebViewConfiguration configuration, WKNavigationAction navigationAction, WKWindowFeatures windowFeatures)
    {
        Console.WriteLine("this doesn't reach");

        return null;
    }
}

internal class WebViewNavigationDelegate : WKNavigationDelegate
{
    public override void DidFinishNavigation(WKWebView webView, WKNavigation navigation)
    {
        Console.WriteLine("this prints");
    }
}

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文