如何检测后退按钮单击并使Webview返回

时间:2018-08-20 00:29:03

标签: c# android xamarin

我正在尝试使用Xamarin为我的一个项目构建一个Webview应用程序,但似乎无法弄清楚如何使webview元素转到上一页而不是关闭该应用程序。

因此,我想出了如何检测按下后退按钮并防止其关闭应用程序的方法,但是我想使网页返回,如果网页无法返回,请关闭应用程序。

这是我的代码:

using System;
using Xamarin.Forms; 
using Xamarin.Forms.Xaml; 
using Application = Xamarin.Forms.Application; 

namespace myNewApp
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public class WebPage : ContentPage
    {
        public object _browser { get; private set; }

        protected override bool OnBackButtonPressed()
        {

                base.OnBackButtonPressed();
                return true;

        }

        public WebPage()
        {


            var browser = new Xamarin.Forms.WebView();

            browser.Source = "https://myurl.com";


            Content = browser;

        }



    }
}

我尝试了几个答案,但发现了这段代码,但由于覆盖无法访问公共Web浏览器var而无法正常工作

if (browser.CanGoBack)
            {
                browser.GoBack();
                return true;
            }
            else
            {
                base.OnBackButtonPressed();
                return true;
            }

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要将browser设为类级变量,以便可以在页面中的任何位置访问它。

public class WebPage : ContentPage
{
    Xamarin.Forms.Webview browser;

    protected override bool OnBackButtonPressed()
    {

        base.OnBackButtonPressed();

        if (browser.CanGoBack)
        {
            browser.GoBack();
            return true;
        }
        else
        {
            base.OnBackButtonPressed();
            return true;
        }

    }

    public WebPage()
    {


        browser = new Xamarin.Forms.WebView();

        browser.Source = "https://myurl.com";


        Content = browser;

    }
}