Xcode iOS应用程序Swift 3当我离开应用程序窗口并转到主屏幕时停止收听

Posted

技术标签:

【中文标题】Xcode iOS应用程序Swift 3当我离开应用程序窗口并转到主屏幕时停止收听【英文标题】:Xcode iOS application Swift 3 Stop listening when I leave application window and go out to home screen 【发布时间】:2017-07-26 09:43:44 【问题描述】:

我的 ios 应用有问题,使用 Xcode 在 Swift 3 上编写。

我在我的应用程序中使用 WiFi Socket 服务器通信通过 WiFi 协议与 Raspberry Pi 进行通信,并在 Xcode 中使用 UserNotification 来接收从 RPi 发送的这些通知。

问题是当我离开应用程序的窗口并转到主屏幕时,我的应用程序似乎停止监听,当我的 RPi 发送通知时,我的 iPhone 上没有通知可以看到。

当我使用 Xcode 模拟器测试我的应用程序时,它在应用程序窗口或主屏幕上运行良好,但是当我在我的 iPhone 设备上测试它时,它仅在我停留在应用程序窗口时才会收到通知,然后停止当我按下主页按钮进入主屏幕或应用程序窗口之外的任何位置时工作。

也许有人知道解决方案, 提前致谢,

【问题讨论】:

您使用了“通知”一词,但我认为您不是在谈论推送通知,而是将数据包发送到 iOS 设备上的套接字。应用程序在暂停时无法侦听网络套接字。 嗨 Paulw11,感谢重播,这意味着我必须在我的情况下使用推送通知方法? @Paulw11 但我做到了。 做了什么?如果您指的是它在模拟器上工作的事实,那是因为应用程序在从 Xcode 运行时表现不同。 我把它放在后台进程中,以便在我的应用程序处于后台时能够监听网络套接字。 【参考方案1】:

在您打开 HomeScreen 时检查您的设备的状态。不要与模拟器比较通知。你需要做更多的调试。

应用程序在前台运行,iOS 不会显示通知横幅/警报。这是设计使然。您必须编写一些代码来处理您的应用在前台收到通知的情况。

另外,我不认为它与 swift 有任何关系 检查此链接以获得更好的想法Notification when in foreground iOS

【讨论】:

以上是关于Xcode iOS应用程序Swift 3当我离开应用程序窗口并转到主屏幕时停止收听的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8.3 Swift 3 FCM 通知上的 Firebase 问题 iOS 10.3 不起作用

如何在 SWIFT3 XCODE 8.2 的 IOS 应用程序中显示 Snackbar 的操作中的特定视图

现有的领域数据库不能在 swift 3.1 xcode 8 中工作

将Realm从Swift 4转换为Swift 3

Swift 3 - iOS 11.2上的UICollectionview问题

我如何通过 swift 2.3 项目支持 iOS 版本 10.3