Выполнен обратный вызов из WebView

в моем приложении XF у меня есть возможность открыть веб-страницу.

Для этого я использую Xamarin.Essential: await Browser.OpenAsync(url, opts);.

Мне нужен обратный вызов, когда пользователь нажимает кнопку Готово (в iOS) или кнопку Назад (в Andorid).

Как я могу это сделать?

Есть ли другой способ, кроме использования Xamarin.Essential?

Благодарю вас!

ИЗМЕНИТЬ

Мне нужно выполнить некоторый код C#, когда пользователь нажимает кнопку «Готово» в iOS или кнопку «Назад» в Android, когда открыт WebView.

Я не пытаюсь выполнить какой-либо код JavaScript или выполнить код C# из Javascript.

введите здесь описание изображения

видео для Android.

Пример здесь.


person Hikari    schedule 24.06.2019    source источник
comment
Если вы хотите получить такое событие в браузере, я не думаю, что это можно сделать.   -  person Junior Jiang    schedule 26.06.2019


Ответы (1)


Да, если вы не хотите использовать Essentials для открытия страниц, вы можете использовать

Device.OpenUri(new Uri("www.example.com"));

И если вы хотите, чтобы это было в асинхронной функции

await Device.OpenUri(new Uri("www.example.com"));

И если вы хотите добавить функцию обратного вызова из веб-представления, вам потребуется создать HybridWebView и пользовательские средства визуализации для iOS и Android, как показано здесь.

person Saamer    schedule 24.06.2019
comment
Привет, я протестировал это решение, но это не то, что я пытался сделать. Я отредактировал вопрос. - person Hikari; 25.06.2019
comment
@Hikari, не могли бы вы поделиться скриншотами iOS и Android в описании этих кнопок «Готово» и «Назад», о которых вы говорите? Эти кнопки находятся в веб-просмотре или на странице. Если они находятся на странице, а не в веб-просмотре, попробуйте сделать это для защищенного переопределения Android-› bool OnBackButtonPressed() { _webView.GoBack(); вернуть истину; } - person Saamer; 25.06.2019
comment
Кнопки есть на WebView :( - person Hikari; 25.06.2019
comment
Кнопка «Назад» на Android — более простое решение, попробуйте это на своей странице: protected override bool OnBackButtonPressed() { _webView.GoBack(); вернуть истину; } - person Saamer; 25.06.2019
comment
Для iOS есть более сложный способ, но попробуйте этот wolfprogrammer .com/2016/07/07/custom-app-header-in-forms - person Saamer; 25.06.2019
comment
Я добавил пример проекта :) - person Hikari; 25.06.2019
comment
Давайте продолжим это обсуждение в чате. - person Saamer; 26.06.2019