Я использую Xamarin.iOS для разработки приложения для iOS и внедрил DecidePolicy WKNavigationDelegate, если мое веб-представление выглядит следующим образом:
public override void DecidePolicy(WKWebView webView, WKNavigationResponse navigationResponse, Action<WKNavigationResponsePolicy> decisionHandler)
{
if (webView.Url.AbsoluteString == @"www.myurl.com")
{
var response = navigationResponse.Response as NSHttpUrlResponse;
System.Diagnostics.Debug.WriteLine(response.ToString());
}
decisionHandler?.Invoke(WKNavigationResponsePolicy.Allow);
}
На этой странице есть кнопка, которая при нажатии вызывает форму "POST". Это, в свою очередь, отправляет форму и возвращает HTTP-статус 200 вместе с только скрытыми элементами в теле формы ответа. Я хочу получить эти скрытые элементы для дальнейшей обработки в моем приложении.
Моя проблема состоит из двух частей:
- Объект ответа выше содержит только заголовки ответов, и мне нужно получить тело ответа
На самом деле я не знаю при использовании переопределенного DecidePolicy (..) сверху, была ли форма отправлена на этот URL? Я могу добиться этого, используя другой DecidePolicy:
public override void DecidePolicy(WKWebView webView, WKNavigationAction navigationAction, Action<WKNavigationActionPolicy>decisionHandler)
{
if (navigationAction.NavigationType == WKNavigationType.FormSubmitted)
{
//perform logic
}
}
Но тогда я не знаю, как извлечь тело ответа из этого варианта метода. Ваша помощь очень ценится.