WKWebView 不显示加载的内容

Posted

技术标签:

【中文标题】WKWebView 不显示加载的内容【英文标题】:WKWebView doesn't display loaded content 【发布时间】:2020-07-31 15:53:34 【问题描述】:

我正在尝试使用 WKWebView 在 Xamarin ios 应用程序中显示一些内容。代码非常简单:

public override void ViewDidLoad()

    base.ViewDidLoad();
    var simpleWebView = new WKWebView(View.Frame, new WKWebViewConfiguration());
    Add(simpleWebView);

    simpleWebView.NavigationDelegate = new WKWebViewDelegate();
    simpleWebView.LoadRequest(new NSUrlRequest(new NSUrl("https://myurl_here")));


public class WKWebViewDelegate : WKNavigationDelegate

    public override void DidFinishNavigation(WKWebView webView, WKNavigation navigation)
    
        WKjavascriptEvaluationResult handler = (NSObject result, NSError err) => 
            if (err != null)
            
                //Do smth
            
            if (result != null)
            
                //Do smth
            
        ;
        webView.EvaluateJavaScript("(function()  return ('<html>' + document.getElementsByTagName('html')[0].innerHTML + '</html>'); )(); ", handler);
    

这在 iOS 13 的模拟器中运行良好,但在 iOS 11 中,尽管在 NavigationDelegate 中我可以检查来自 web 的内容是否已加载且没有错误,但我却得到了空白屏幕。 iOS 11 中的 WKWebView 有什么问题?

【问题讨论】:

【参考方案1】:

我不使用破坏性,但在本机 swift 代码中,实例化委托是错误的:您应该委托任何现有对象,通常是控制器。在该控制器中,您将被调用。

另见此处: How to check if WkWebView finish loading in Objective-C?

【讨论】:

它工作正常,并且在 simpleWebView 完成加载内容后调用了 DidFinishNavigation。 看来我找到了解决方案。问题可能与我尝试加载的页面内容有关。

以上是关于WKWebView 不显示加载的内容的主要内容,如果未能解决你的问题,请参考以下文章

ios -为什么用WKWebView加载相同的html文本,有时展示的内容却不一样。

强制 WKWebView 显示移动版本

为啥我的 UIScrollView 中的 WKWebview 没有显示?

webview部分手机无法加载iframe内容

WKWebView 底部视图显示不全

iOS 加载PDF问题无法显示电子章问题