Итак, я создаю приложение, которое использует Xamarin.Forms Webview.Я пытаюсь определить, когда изменяется URL-адрес, и сравнивает ли он исходный URL-адрес с текущим, а затем показывает или скрывает кнопку в зависимости.Назначение кнопок - вернуться на предыдущую страницу и продолжать идти до тех пор, пока она не достигнет своего первоначального назначения.Я хочу, чтобы эта кнопка «назад» отображалась, когда пользователь не на рабочем столе.В противном случае всегда показывайте.
Я пробовал все с помощью if (webview.cangoback ...), но это не обнаруживает изменение URL.Я попытался установить строку, равную исходному URL-адресу, и использовать .Equals для сравнения webview.source (где я сейчас нахожусь)
Я только начал изучать webviewNavigating, но все еще ничего.
namespace Webview_Test
{
public partial class MainPage : ContentPage
{
public static string CurrentUrl { get; set; }
public MainPage()
{
InitializeComponent();
string CurrentUrl = "https://www.google.com/";
var _webView = new WebView()
{
Source = "https://www.google.com/",
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand
};
Button BackButton = new Button
{
Text = "Go Back",
BackgroundColor = Color.FromHex("990000"),
TextColor = Color.White
};
BackButton.Clicked += OnBackButtonClicked;
void OnBackButtonClicked(object sender, EventArgs e)
{
_webView.GoBack();
}
Grid grid = new Grid
{
VerticalOptions = LayoutOptions.FillAndExpand,
RowDefinitions =
{
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = new GridLength(1, GridUnitType.Star) },
new RowDefinition { Height = new GridLength(50, GridUnitType.Absolute) },
new RowDefinition { Height = new GridLength(15, GridUnitType.Absolute) },
new RowDefinition { Height = new GridLength(15, GridUnitType.Absolute) },
new RowDefinition { Height = new GridLength(36, GridUnitType.Absolute) }
},
ColumnDefinitions =
{
new ColumnDefinition { Width = GridLength.Auto },
new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) },
new ColumnDefinition { Width = new GridLength(50, GridUnitType.Absolute) },
new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) },
new ColumnDefinition { Width = GridLength.Auto }
}
};
grid.Children.Add(_webView, 0, 6, 0, 7);
if (_webView.Source.Equals(CurrentUrl))
{
grid.Children.Remove(BackButton);
}
else
{
grid.Children.Add(BackButton, 2, 4, 4, 6);
}
Content = grid;
}
}
}
Мой ожидаемый результат заключается в том, что на главной странице кнопка с надписью «вернуться назад» не отображается.Но на любой странице, кроме домашней, должна отображаться кнопка «вернуться».В логических терминах это, если OriginalURL = CurrentURL не показывать кнопку.если OriginalURL! = кнопка показа CurrentURL.