[FMX] 在应用中检测是否已经联网

好吧,我这人实在是懒,不想装组件,而且也不关心太复杂的功能,就是想让用户在使用软件之前,检查下网络是否连接了,所以查找资料写了一个函数。

首先加一个简单的说明:

  • 联网只代表联网,并不代表你一定能够访问指定的网址。比如你虽然连接了 Wifi,但无线路由器却没有连接到 Internet,函数会返回已经联网,但是你实际上还是访问不了。
  • 只支持 Android、iOS 和 Windows 平台,到于 OSX 我大略搜索下,没找到资料,而时间又不太允许细研究,所以大家就暂时忽略吧,在 OSX 中始终返回 true(假设苹果用户都有良好的联网习惯)。
  • iOS 的用户,需要引用 iOSapi.SystemConfiguration 单元,点右边的链接直接下载。当然如果下一版 Delphi 直接带的话,您可以忽略它。注意由于用 SDKTransform 翻译后,我只改动了用到的东西,有可能有些翻译仍然不太对的,我没改,大家用到自己对比 Objective C 的原始声明改下吧。
  • 已知在 iOS 模拟器中,会出现AV错误,但实机测试不会
  • Android 的用户,请打开读取网络状态的权限,否则会出异常提示你打开。

在 Android 和 iOS 下,稍微改进下还可以检查是否是 Wifi 或移动网络连接,这个大家自己去扩展吧。

分享到:

4 条评论

沙发空缺中,还不快抢~