У нас есть мобильное приложение, которое отображает HTML-страницу с небольшим количеством JavaScript в веб-браузере.
На этой странице у нас есть форма. Это выглядит примерно так:
<form method="get" action = "" id="mainform">
<input name="EXAMPLE_NAME" id"EXAMPLE_NAME" placeholder="" type="text" maxlength="35"/>
</form>
Пока все хорошо. Пользователь может просмотреть этот ввод и заполнить его данными. Затем они нажимают кнопку на странице xaml, которая вызывает функцию, которая выполняет:
Browser.Eval("submitMainForm()")
В javascript на странице есть функция, которая выглядит следующим образом:
function submitMainForm() {
var x = document.getElementById("mainForm").submit();
}
В коде C # у нас есть обработчики для получающейся навигации. Они выглядят так:
async void OnNavigating(object sender, WebNavigatingEventArgs e)
{
и
void OnNavigated(object sender, WebNavigatedEventArgs e)
{
Это хорошо работает в iOS и Android. Мы получаем WebNavigatingEventArgs в обработчике, и там хранится значение из поля, которое мы показываем в веб-обозревателе (внутри mainform).
Так, например, e.Url в обработчиках OnNavigating и OnNavigated будет выглядеть примерно так:
"Файл: ///storage/emulated/0/Android/data/com.example.exampleapp/files/Example.html EXAMPLE_NAME = Test"
Мы анализируем эту строку, чтобы получить значения, которые нас интересуют (в данном случае Test), и все в порядке.
На UWP, однако, все работает намного хуже. On Navigating никогда не вызывается вообще, а вызов OnNavigated просто хранит значение «about: blank» в своем URL-адресе WebNavigateEventArgs.
Кто-нибудь знает, что здесь может происходить, и / или есть способ, которым я могу это исправить? Мне нужен способ получить результаты моего звонка в форму get, как я это делаю на двух других платформах, а не «about: blank». В идеале я также хотел бы получить вызов OnNavigated, но важнее всего данные.
Спасибо за вашу помощь