Я добавил публичный метод для возврата переменной pageLoaded, но Visual Studio показывает эту ошибку «Ссылка на объект необходима для метода MainPage.PageLoaded (), а не static». Логика заключается в том, чтобы завершить Splash Activiy, только если pageLoaded имеет значение true. Если у кого-то есть идея получше, было бы неплохо знать, я только начал изучать C # / Xamarin.
Мой код:
namespace MyApp
{
public partial class MainPage : ContentPage
{
private bool pageLoaded = false;
public MainPage()
{
InitializeComponent();
webnav.HeightRequest = 1000;
webnav.WidthRequest = 1000;
webnav.Source = "https://www.example.com";
}
public void Webnav_Navigated(object sender, WebNavigatedEventArgs e)
{
pageLoaded = true;
}
public bool PageLoaded()
{
return pageLoaded;
}
}
}
Код 2:
...
...
using MyApp;
namespace MyApp.Droid
{
[Activity(Label = "My App", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = false, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
while (true)
{
if (MainPage.PageLoaded())
{
SplashScreen.fa.Finish();
break;
}
}
}
}
}