我需要编写一个IOS应用程序,让一些IOS设备在没有外部Internet连接的情况下相互发送本地通知(不使用APNS - 苹果推送通知服务器)。环境将是一个私有的内部WIFI网络,带有专用服务器......
Scanario
我们在银行办公室工作 所有14人使用Iphone 人员A向13人的其余人发送通知 所有人都会收到通知 小组中的一个人(例如,人H)回复 而A人可以收到H的回复 不是外部互联网 所有的iPhone 我们拥有的是一个由服务器设置的私人wifi网络。完全没有链接到外面的世界..没有链接到外部互联网如果可以在ios应用程序中使用。使用swift 3.0。如果有可能,请指导我。
答案 0 :(得分:2)
如果您的网络中有服务器,则可以使用后台提取(Apple documentation)和本地通知的组合来实现此类功能包含显示通知所需的信息。从概念上讲,这将是这样的:
但是,这种方法要记住三件事。
编辑:例如:
AppDelegate.didFinishWithLaunchOptions
方法中设置最小间隔,例如: UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping
(UIBackgroundFetchResult) -> Void {
fetchData() { data in
if data.needsToBeNotified {
sendLocalNotification()
}
completionHandler(.newData)
}
}
RayWenderlich有一个很好的关于背景模式的教程:https://www.raywenderlich.com/143128/background-modes-tutorial-getting-started
答案 1 :(得分:0)
可以使用Wi-Fi网络中的MQTT协议解决该方案。您将必须在网络内设置MQTT代理,并在iOs应用程序中创建MQTT客户端。您可以在与GCM相同的主题上为MQTT代理订阅MQTT客户端,并使用MQTT代理向MQTT客户端订阅的主题发送推送通知。