Как мне скопировать все из одного WKWebView в новый WKWebView
Я пытаюсь скопировать все загруженные данные из одного WKWebView
к новому WKWebView
поэтому весь контент будет загружен, когда новый webView
представлена. Любое предложение, как это сделать или как лучше всего к этому подойти?
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;
}
Когда вы создаете новый веб-просмотр, вы должны скопировать конфигурацию следующим образом:
private async Task CopyConfiguration(String url, MgFormsWebView mainWebview)
{
var config = await mainWebview.GetConfigurationAsync();
await webview.SetConfigurationAsync(config);
webview.Source = url;
}