Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测返回按钮单击并使webview返回_C#_Android_Xamarin - Fatal编程技术网

C# 如何检测返回按钮单击并使webview返回

C# 如何检测返回按钮单击并使webview返回,c#,android,xamarin,C#,Android,Xamarin,我正在尝试使用Xamarin为我的一个项目构建webview应用程序,但我似乎不知道如何使webview元素转到上一页,而不是关闭应用程序 因此,我已经想出了如何检测被按下的后退按钮,并阻止它关闭应用程序,但我想让网页返回,如果网页无法返回,则关闭应用程序 这是我目前的代码: using System; using Xamarin.Forms; using Xamarin.Forms.Xaml; using Application = Xamarin.Forms.Application;

我正在尝试使用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;

        }



    }
}
我尝试了几个答案,发现了这段代码,但它不起作用,因为覆盖无法访问公共网页浏览器变量:

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

任何帮助都将不胜感激

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

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;

    }
}
非常感谢:)我知道我在删除var和设置Xamarin.Forms.Webview浏览器时遗漏了一些东西;成功了