我在使用 XLabs.Platform 的 INetwork 时遇到问题。我收到 System.NullReferenceException。我不确定问题是否与我需要初始化 INetwork 的问题类似。但是,因为我对 Xamarin 很陌生,所以我不知道如何设置 IOC 容器。我想以一种完全跨平台的方式(如果可以避免的话,我想避免放置特定于平台的代码)。谢谢!!
代码:
using XLabs.Ioc;
using XLabs.Platform;
...
namespace XXX
{
class XXX
{
public static bool isOnline()
{
var networkservice = DependencyService.Get<XLabs.Platform.Services.INetwork>();
var status = networkservice.InternetConnectionStatus();
return (
(status.Equals(XLabs.Platform.Services.NetworkStatus.ReachableViaCarrierDataNetwork))
|| (status.Equals(XLabs.Platform.Services.NetworkStatus.ReachableViaWiFiNetwork))
|| (status.Equals(XLabs.Platform.Services.NetworkStatus.ReachableViaUnknownNetwork)));
}
}
}
PS 使用 XLabs.Platform 的文档已过期。(显然)以前运行的可达性界面不再起作用。考虑改用这个。 这是一种需要跨平台代码的方法。 不打算使用它,因为作者本人反对这种方法。