我正在尝试将所有加载的数据从一个复制WKWebView
到一个新的WKWebView
,以便在呈现新的内容时加载所有内容webView
。有什么建议如何做到这一点或最好的方法是什么?
问问题
714 次
1 回答
-1
我在 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;
}
当你实例化一个新的 webview 时,你必须以这种方式复制配置:
private async Task CopyConfiguration(String url, MgFormsWebView mainWebview)
{
var config = await mainWebview.GetConfigurationAsync();
await webview.SetConfigurationAsync(config);
webview.Source = url;
}
于 2019-04-15T14:58:42.993 回答