【问题标题】:Xamarin WebView.CanGoBack and CanGoForward always return false after page loadedXamarin WebView.CanGoBack 和 CanGoForward 在页面加载后总是返回 false
【发布时间】:2018-02-08 16:38:23
【问题描述】:

我是 Xamarin.Forms 的新手,如果我没有使用正确的话,请见谅。我创建了一个名为“WebBrowser”的解决方案,以创建一个简单的移动浏览器;目前我正在处理公共文件 MainPage.xamlMainPage.xaml.cs,我正在 Android 5.1 智能手机。 我使用 Microsoft Visual Studio 2017 15.5.4

MainPage.xaml中我指定了以下代码

<Button Text="Back"
        x:Name="backButton"
        IsEnabled="False"
        Clicked="previousPage"/>

<Button Text="Next"
        x:Name="nextButton"
        IsEnabled="False"
        Clicked="nextPage"/>

<WebView x:Name="appWebView"
         Source="https://www.google.com/"
         Navigating="onLoadingPage"
         Navigated="onPageLoaded"/>

所以当一个页面被加载时,方法onPageLoaded()被调用。

该方法包含以下代码

private void onPageLoaded(object sender, EventArgs e)
{
    if (appWebView.CanGoBack)
        backButton.IsEnabled = true;
    else
        backButton.IsEnabled = false;

    if (appWebView.CanGoForward)
        nextButton.IsEnabled = true;
    else
        nextButton.IsEnabled = false;
}

为了在用户可以/不能转到上一页/下一页时启用/禁用“箭头”按钮。

在这种情况下,appWebView.CanGoBackappWebView.CanGoForward总是 返回 false,即使它应该为 true。但是,如果我保持启用按钮并在用户单击其中一个按钮时检查它们的值,则两者都会返回正确的值。

为什么它在 onPageLoaded() 方法中不起作用?

【问题讨论】:

  • 似乎在属性有效更改之前引发了事件。可以分享backbuttonnextButton 创建代码吗?也许还有另一种方法可以实现您的目标。
  • @DiegoRafaelSouza 代码已更新

标签: c# android visual-studio xamarin xamarin.forms


【解决方案1】:

这不是您所要求的确切答案,但您可以使用 Bindings 资源来做这样的事情。像这样:

<Button Text="Back"
        x:Name="backButton"
        IsEnabled="{Binding CanGoBack, Source={Reference appWebView}}"
        Clicked="previousPage"/>

<Button Text="Next"
        x:Name="nextButton"
        IsEnabled="{Binding CanGoFoward, Source={Reference appWebView}}"
        Clicked="nextPage"/>

<WebView x:Name="appWebView"
         Source="https://www.google.com/"
         Navigating="onLoadingPage"/>

这更简单。如果您想了解有关 Xamarin.Forms 上的绑定的更多信息,请查看 this article

因此,如果 onPageLoaded 事件处理程序仅为此而存在,您可以删除它。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2021-10-24
    • 2017-11-18
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多