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文本,有时展示的内容却不一样。