结构:Xamarin.Forms如何显示互联网连接CHANGED?我的应用程序的
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new MdpMainPage();
}
MdpMainPage是MasterDetailPage:
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<pages:HomePage />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
我的主页是一个CarouselPage,它包含三页式ContentPage的。
<CarouselPage>
...some namespaces...
<CarouselPage.Children>
<pages:HomePageA />
<pages:HomePageB />
<pages:HomePageC />
</CarouselPage.Children>
</CarouselPage>
我想用JamesMontemagno的ConnectivityPlugin到WATCH互联网连接的变化。当应用程序启动
DisplayAlert框应弹出,它应该告诉我们要么:
DisplayAlert("Internet connection found.", "Wait for the application data to update.", "OK");
......或者......
DisplayAlert("No internet connection found.", "Application data may not be up to date. Connect to a working network.", "OK");
如果有是互联网连接在应用程序的开始和它在使用过程中丢失第,另一个消息框应弹出一句话:
DisplayAlert("Internet connection lost.", "Application data may not be up to date. Connect to a working network.", "OK");
如果处于起步应用的并以某种方式没有互联网连接后的设备成功连接中,首先提到的消息框应出现:
DisplayAlert("Internet connection found.", "Wait for the application data to update.", "OK");
我试图找出正确实施与所提供的帮助Documentation。
不幸的是,詹姆斯蒙特马格诺不打扰详细解释如何使用ConnectivityPlugin,所以像我这样的初学者往往最终会感到困惑。
我知道我应该使用下面的代码片段:
/// <summary>
/// Event handler when connection changes
/// </summary>
event ConnectivityChangedEventHandler ConnectivityChanged;
public class ConnectivityChangedEventArgs : EventArgs
{
public bool IsConnected { get; set; }
}
public delegate void ConnectivityChangedEventHandler(object sender, ConnectivityChangedEventArgs e);
CrossConnectivity.Current.ConnectivityChanged += async (sender, args) =>
{
Debug.WriteLine($"Connectivity changed to {args.IsConnected}");
};
...但我不知道从哪里把他们。
我已经尝试了几种组合,但迄今为止都无济于事。
我是否在App.xaml中放置了一些,在MasterDetailPage中放置了一些?
或者更确切地说是一个详细页面?
或者在每个详细页面中?
请不要以为我没有谷歌周围。因为我做了,每个人似乎都对如何调味基本的蒙特马格诺食谱有不同的意见,这很混乱。
有人可以提供最简单,最干净的方式来实现这个?没有什么奇特的东西,只是消息框告知用户连接的变化。
帮助将不胜感激。
谢谢大家。
我下载Montemagno的工具包。我将你的第一个片段放到App.xaml.cs中放入OnStart方法中。我把你的第三个片段放到我的MdpMainPage.xaml.cs中(顺便说一句,它也可以用作汉堡菜单)。我发现了一个奇怪的错误 - 在e.IsConnected是强调用红色波浪 - IMessaging服务不包含定义IsConnected ...等。有任何想法吗? – PaxForce
@PaxForce它工作吗? – hankide
@PaxForce检查我的最新编辑,现在应该没问题。 – hankide