通过WiFi推送通知

时间:2017-02-10 17:55:59

标签: ios wifi

我在Boingo的Wi-Finder iOS应用程序中注意到,一旦他到达Boingo数据库中的访问点,应用程序就会向用户发送通知。该通知告诉用户他可以访问wifi网络。

iOS是如何完成的?

3 个答案:

答案 0 :(得分:3)

我认为可以通过观察设备与AppDelegate didFinishLaunchingWithOptions networkStatusReachability课程的连接来完成 当ReachableViaWiFi等于application.registerForRemoteNotifications()时,请拨打Remote

更新: 有两种类型的通知:Local和{{1}} 你可以配置你的应用程序发送本地通知,但你需要先设置它的内容, here您可以找到有关如何处理本地通知的Apple指南

答案 1 :(得分:2)

您可以使用 CLLocationManager UserNotifications 来实现这一目标。

您可以使用区域监控服务,例如 CLCircularRegion 类(获取地理区域)或 CLBeaconRegion 类(获取信标区域) )当用户越过基于区域的边界时得到通知。如果即使您的应用程序未运行也会发生边界跨越,系统会自动将其唤醒(或重新启动),以便它可以处理该事件。

在这种情况下,传递给应用代理的应用程序(_:didFinishLaunchingWithOptions:)方法的选项字典包含 UIApplicationLaunchOptionsKey.location 。然后trigger a local notification以通知用户该位置的可用服务。

<强>示例: -

  1. 使用位置监控: - https://www.raywenderlich.com/136165/core-location-geofencing-tutorial
  2. 使用iBeacons - https://www.raywenderlich.com/101891/ibeacons-tutorial-ios-swift
  3. NB。正如其他答案可达性类中所建议的,我们也可以使用。但是,如果应用程序处于后台或终止,则无法使用可访问性。要在app处于后台时触发可访问性,我们可以按照以下步骤操作:https://stackoverflow.com/a/35615381/4637057。但不幸的是,这里的缺点是,后台提取设置为应用程序的次数越多,将使用的资源就越多。 iOS通过对尝试经常使用API​​的应用程序施加限制来保护自身和设备,因此在设置自定义时间间隔时要小心。此外,背景提取会很快导致电池耗尽。

    此外,只有当应用程序连接到该wifi网络时,可达性才能触发通知。但即使应用程序处于后台并且手机尚未连接到wifi,Boingo也会通知用户。所以我强烈怀疑他们正在使用位置服务来检测用户是否进入了可用wifi的区域。

答案 2 :(得分:1)

您可以获取Wifi热点的SSID,如果已注册,可以关注Mohy的答案。 请检查以下链接。

  

How to get Wifi SSID in iOS9 after CaptiveNetwork is deprecated and calls for Wifi name are already blocked

这将帮助您获取Wifi热点的SSID。