如何解决从离线回到在线后,我想重新加载App IOS / Android-Xamarin
打开互联网连接(打开wifi或移动数据)后,我需要重新加载Xamarin IOS / Android应用
我只需要刷新应用页面
更多信息
应用程序外壳包含
<TabBar>
<Tab Title="Home" Route="Home">
<Tab.Icon>
<FontimageSource
x:Name="home"
Glyph=""
FontFamily="{StaticResource FontAwesomeSolid}"
Size="20"
/>
</Tab.Icon>
<ShellContent ContentTemplate="{DataTemplate local:Home}" />
</Tab>
....................
</TabBar>
C#代码
private void Connectivity_ConnectivityChanged(object sender,ConnectivityChangedEventArgs e)
{
IsInternetNotAvailable = e.NetworkAccess != NetworkAccess.Internet;
if (IsInternetNotAvailable == false)
{
}
}
解决方法
当网络改变时,您可以使用MessagingCenter发布消息:
private void Connectivity_ConnectivityChanged(object sender,ConnectivityChangedEventArgs e)
{
IsInternetNotAvailable = e.NetworkAccess != NetworkAccess.Internet;
if (IsInternetNotAvailable == false)
{
MessagingCenter.Send<MainPage,string>(this,"NetWorkChange","NotAvailable");
}
}
并在您需要更新的所有其他页面中订阅消息。通过OnDisappearing
方法退订:
protected override void OnAppearing()
{
base.OnAppearing();
MessagingCenter.Subscribe<MainPage,"Hi",async (sender,arg) =>
{
await DisplayAlert("Message received","arg=" + arg,"OK");
if (arg == "NotAvailable")
{
}
else
{
}
});
}
protected override void OnDisappearing()
{
base.OnDisappearing();
MessagingCenter.Unsubscribe<MainPage,"Hi");
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。