微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从离线回到在线后,我想重新加载App IOS / Android-Xamarin

如何解决从离线回到在线后,我想重新加载App IOS / Android-Xamarin

打开互联网连接(打开wifi或移动数据)后,我需要重新加载Xamarin IOS / Android应用

我有代码检查互联网是否可用

我只需要刷新应用页面

更多信息

应用程序外壳包含

 <TabBar>
        <Tab Title="Home" Route="Home">
            <Tab.Icon>
                <FontimageSource 
                            x:Name="home"
                             Glyph="&#xe065;"
                             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 举报,一经查实,本站将立刻删除。