点击按钮后,使用Xamarin在另一个页面上打开网络视图。
我正在尝试使用Xamarin构建跨平台应用程序(于4-03-19更新)。在应用程序的主页上,我有几个按钮。使用这些按钮之一,我希望使用网络视图来加载网站。如果我使用其中一个按钮从该主页启动webview,就可以完成。但是,在该主页上,我将导航设置为false,这样我就看不到该页面上的导航。这是发生问题的地方。由于导航设置为false,因此一旦调用Web视图就无法返回。我对此的解决方案是让我的按钮导航到新页面。然后,我试图在页面加载后触发网页视图。但是我无法做到这一点。
Mainpage.xaml
NavigationPage.HasNavigationBar="False"
Mainpage.xaml.cs
public MainPage()
{
InitializeComponent();
}
private async void OnButtonClickedwebsite(object sender, EventArgs e)
{
await Navigation.PushAsync(new Website());
}
//private void OnButtonClickedwebsite(object sender, EventArgs e)
//{
// var browser = new WebView();
// browser.Source = "https://google.com";
// Content = browser;
//}
Website.xaml
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:test"
x:Class="test.Websitemain"
BackgroundColor="White">
<ContentPage.Content>
<StackLayout>
<WebView x:Name="websitemain" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
Website.xaml.cs
public partial class Websitemain : ContentPage
{
public class Webview : ContentPage
{
private void Websitemain(EventArgs e)
{
//await Navigation.PushAsync(new Website());
var browser = new WebView();
browser.Source = "https://google.com";
Content = browser;
}
}
该按钮应导航到新页面,然后启动我的Web视图。但是,它只是导航到新页面而从不触发Web视图,因此它只是一个空白屏幕。
答案 0 :(得分:0)
// load the website in your page's constructor
public partial class Websitemain : ContentPage
{
private void Websitemain()
{
var browser = new WebView();
browser.Source = "https://google.com";
Content = browser;
}
}
答案 1 :(得分:0)
但是,它只是导航到新页面而从不触发Web视图,因此它只是一个空白屏幕。
根据Mainpage.xaml.cs
的代码,您导航到新页面(Website
),而不是您创建的Websitemain
页面。
根据Website.xaml.cs
的代码,内容页面的名称为网站主体。您需要保持其名称一致。
修改 Mainpage.xaml.cs 如下:
public MainPage()
{
InitializeComponent();
}
private async void OnButtonClickedwebsite(object sender, EventArgs e)
{
await Navigation.PushAsync(new Websitemain());
}
和 Website.xaml.cs 应该更改为 Websitemain.xaml.cs 。
public partial class Websitemain : ContentPage
{
public class Webview : ContentPage
{
private void Websitemain()
{
//await Navigation.PushAsync(new Website());
var browser = new WebView();
browser.Source = "https://google.com";
Content = browser;
}
}
}
然后您的代码即可使用。