Saltar al contenido

Xamarin Forms: hacer que la vista web regrese

Esta crónica ha sido probado por nuestros especialistas para asegurar la veracidad de este tutorial.

Solución:

Edita tu código así. Primero envuelve tu MainPage en un NavigationPage para que la barra de herramientas sea visible.

Básicamente se trata de crear una variable para poder acceder a su WebView más fácil.

Entonces crea un botón en ti ToolbarItems colección que puede desencadenar un evento. Y en ese caso puedes llamar a los ya disponibles GoBack() método en el WebView.

Probablemente desee consultar la documentación de Xamarin en el WebViewprobablemente sea una buena idea comprobar si lata en realidad volver con el CanGoBack propiedad.

Tenga en cuenta que he asignado un BackIcon.png puedes reemplazarlo con null o su propio icono, por supuesto. Además, el código no ha sido probado, esto está fuera de mi cabeza, por lo que tal vez falten algunos puntos y comas o cosas así.

aplicación.cs

// ... other code

public App()

   // The root page of your application
   MainPage = new NavigationPage(new WebPage());

// ... other code

WebPage.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Emit;
using System.Text;

using Xamarin.Forms;

namespace DisplayWebPage

    public class WebPage : ContentPage
    
        private WebView _webView;

        public WebPage()
        
           // Assign a WebView to a global variable
            _webView = new WebView
                    
                        Source = "http://www.google.com"
                    ;

            // Create toolbar items here
            ToolbarItems.Add(new ToolbarItem("Back", "BackIcon.png", () =>  _webview.GoBack(); ));

            Content = new StackLayout
            
                Children =  _webView
            ;
        
    

La respuesta de Gerald Versluis es genial. En base a eso, me gustaría compartir cómo se ve mi código después de intentar resolver los siguientes problemas:

  • Intenté implementar la barra de herramientas y la vista web en XAML (usando VS2017)
  • Ocultar la barra de herramientas cuando se muestra la página principal (no es necesario volver)
  • Anular el botón Atrás del dispositivo

Aplicación.xaml.cs

// ... using, namespace etc

    public partial class App : Application
    
        public App()
        
            InitializeComponent();
            MainPage = new NavigationPage(new MainPage());
        
    

// ...

Página principal.xaml




    
        
    

    

MainPage.xaml.cs

using System;
using Xamarin.Forms;

namespace MyApp

    public partial class MainPage : ContentPage
    
        string Url;

        public MainPage()
        
            InitializeComponent();
            browser.Source = Url = GetUrl();
        

        void OnBack(object sender, EventArgs args)
        
            browser.GoBack();
        

        protected override bool OnBackButtonPressed()
        
            if (browser.CanGoBack)
            
                browser.GoBack();
                return true;
            
            else return base.OnBackButtonPressed();
        

        void OnNavigating(object sender, WebNavigatingEventArgs args)
        
            // Checking if we are at the home page url
            // browser.CanGoBack does not seem to be working (not updating in time)
            NavigationPage.SetHasNavigationBar(this, args.Url != Url);
        

        string GetUrl()
        
            // Possibly some mechanism to accomoddate for several locales
            return "...";
        
    

Al final de la post puedes encontrar las críticas de otros programadores, tú asimismo tienes el poder dejar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *