В моем мобильном приложении (формы xamarin) я получаю данные из Интернета, поэтому для этого требуется подключение к Интернету. Поскольку у меня есть словарь, который я инициализирую в App.xaml.cs и использую данные из Интернета, мне нужно проверить подключение к Интернету. Я видел этот вопрос, где OP запрашивает нечто подобное, но ответ не работает для меня, поскольку мне нужно проверять подключение к Интернету при каждом запуске приложения, а не после запуска MainPage. Например, Clash of Clans. Каждый раз, когда приложение запускается, оно проверяет подключение к Интернету и, если оно отсутствует, оно периодически отображает предупреждение для пользователя, пока оно не будет установлено.
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using System.Collections.Generic;
using HtmlAgilityPack;
using System.Text.RegularExpressions;
using System;
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace Multi
{
public partial class App : Application
{
static GroupStage groupstage = new GroupStage();
public static HtmlWeb web = new HtmlWeb();
public static HtmlDocument doc = LoadUrlAndTestConnection();
//The reason why I have put a method is because I wanted to try if I can use try-catch to display alert, however this didn't work.
public static HtmlDocument LoadUrlAndTestConnection()
{
bool con = true;
while (con)
{
try
{
doc = web.Load(someURL);
}
catch (Exception ex)
{
var sth = new ErrorPage();
sth.InternetErrorDisplay();
con = true;
continue;
}
con = false;
}
return docSK;
}
public static Dictionary<string, Country> _countries = new Dictionary<string, Country>
{
["Australia"] = new Country(1, "Australia", false, "AU", "ausFlag.png", 3, groupstage, GetScore("Australia", 3)),
public static string[] GetScore(string name, int GroupID)
{
//Gets the score data from internet
}
public App()
{
InitializeComponent();
TwitchClass.MainAsync().Wait();
MainPage = new OpeningPage();
}
protected override void OnStart()
{
}
protected override void OnSleep()
{
}
protected override void OnResume()
{
}
}
}
//GetScore method requires internet connection as it gets the score data from internet.
, а метод InternetErrorDisplay -
public void InternetErrorDisplay() => DisplayAlert("Connection Error", "Could not detect internet connection. This application requires access to internet.", "Retry");
Возможно ли такое поведение в приложении xamarin forms? Как мне этого добиться?