我正在尝试将所有已加载的数据从一个WKWebView
复制到新的WKWebView
,以便在显示新的webView
时加载所有内容。
有任何建议如何做到这一点或最佳方法是什么?
答案 0 :(得分:0)
我找到了Xamarin形式的解决方案,希望对您有所帮助,请您理解主意而不是代码
async Task<List<object>> OnGetConfigurationRequestAsync()
{
await Task.Delay(1);
List<object> list = new List<object>();
list.Add(_configuration);
list.Add(_contentController);
return list;
}
async Task<object> OnSetConfigurationRequestAsync(List<object> list)
{
await Task.Delay(1);
if (list == null) return null;
WKWebViewConfiguration wkConfig = null;
WKUserContentController wkUser = null;
foreach (var item in list)
{
if (item is WKWebViewConfiguration)
wkConfig = (WKWebViewConfiguration)item;
else if (item is WKUserContentController)
wkUser = (WKUserContentController)item;
}
if(wkConfig!=null)
{
_configuration = wkConfig;
_contentController = wkUser;
}
var wkWebView = new WKWebView(Frame, _configuration)
{
Opaque = false,
UIDelegate = this,
NavigationDelegate = _navigationDelegate,
};
SetNativeControl(wkWebView);
OnControlChanged?.Invoke(this, wkWebView);
return null;
}
实例化一个新的Web视图时,必须以这种方式复制配置:
private async Task CopyConfiguration(String url, MgFormsWebView mainWebview)
{
var config = await mainWebview.GetConfigurationAsync();
await webview.SetConfigurationAsync(config);
webview.Source = url;
}