Xamarin.Forms WebView с локальным контентом, не запускающим событие Navigated - PullRequest
0 голосов
/ 29 августа 2018

Я реализовал HybridWebView здесь .

Я хочу определить, когда страница закончила загрузку, но событие навигации, похоже, не срабатывает.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:lib="clr-namespace:Xam.Forms.MyStuff"
             x:Class="Xam.Forms.MyStuff.HybridWebView">
    <ContentPage.Content>
        <lib:HybridWebView x:Name="hybridWebView" Uri="index.html"
                Navigated="HybridWebView_Navigated"
                HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"/>
    </ContentPage.Content>
</ContentPage>

Почему событие Navigated не срабатывает? Это потому, что исходный контент загружается локально, а не по фактическому URL? Если да, есть ли какой-нибудь другой способ определения, когда локально полученный HTML-файл завершил загрузку?

Я бы даже был в порядке, если бы обнаружил его внутри отдельных средств визуализации.

1 Ответ

0 голосов
/ 06 мая 2019

Создайте элемент и запишите событие в платформе рендерера. Следующий пример предназначен для UWP, но шаблон также применим к iOS и Android.

В событии OnElementChanged создайте собственный элемент WebView и назначьте обработчик события:

if(Control == null)
{
    var webView = new Windows.UI.Xaml.Controls.WebView();
    {
        webView.Navigate(uri);
    };
    webView.NavigationStarting += WebView_NavigationStarting;
}

Создать обработчик события:

private void WebView_NavigationStarting(Windows.UI.Xaml.Controls.WebView sender, Windows.UI.Xaml.Controls.WebViewNavigationStartingEventArgs args) {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...