我有一個應用程序開發Xamarin(跨平臺),現在運行良好!但總是需要互聯網連接。 如果互聯網連接失敗,我的應用程序遭受意外關機。我想控制這一點。 首先我有 「AzureDataService」 類:驗證互聯網連接或Azure服務 - Xamarin
public class AzureDataService
{
//Conexion to backend
public MobileServiceClient MobileService { get; set; }
//Object of "Ficha" class.
IMobileServiceSyncTable<Ficha> tablaFicha;
public async Task Initialize()
{
if (isInitialized)
return;
MobileService = new MobileServiceClient("http://linkbdd");
//Save data in a local DB, later upload with internet connection
const string path = "bbddMuestra.db";
var store = new MobileServiceSQLiteStore(path);//Create DB
store.DefineTable<Ficha>();
//async initialization
await MobileService.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
//Inicializate table
tablaFicha = MobileService.GetSyncTable<Ficha>();
isInitialized = true;
}
//Here get data
public async Task<IEnumerable<Ficha>> GetData()
{
await Initialize();
await SyncFicha();
//Select data...
return await tablaFicha.OrderBy(a => a.Id).ToEnumerableAsync();
}
public async Task SyncFicha()
{
await tablaVehiculos.PullAsync("Ficha", tablaFicha.CreateQuery());
await MobileService.SyncContext.PushAsync();
}
「AzureDataService」 類的結束。現在該類實現AzureDataService。
public partial class ListaFichas : ContentPage
{
public static ObservableCollection ficha;
public ListaFichas()
{
InitializeComponent();
ficha = new ObservableCollection();
}
protected async override void OnAppearing()
{
base.OnAppearing();
ficha.Clear();
//Next line get data from previous method of class "AzureDataService"
var ligas = await App.AzureService.GetData();
foreach(var item in ligas)
{
Ficha fi = item;
ficha.Add(fi);
}
//Here bind listview with data that previous get
lsvFichas.ItemsSource = ficha;
}
請幫幫我。我想要顯示一個Display或DisplayActionSheet來通知用戶...但是永遠不會意外關機。 謝謝!...
UWP社區工具包有一個HelperClass調用了'NetworkHelper',它有一個方法'NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable',如果'yes'你有互聯網連接。您可以使用此功能並按照特定要求進行處理。 – AVK
James提供了一個跨平臺的插件連接。除了你總是可以使用try/catch來獲取超時異常,如果你無法連接。無論如何,你應該這樣做,因爲任何連接標誌都可能是錯誤的。我經歷過很多次,當它沒有連接時,連接是正確的,反之亦然 –