【问题标题】:Enabling MQTT Service in Background in Hybrid Applications for iOS environment在 iOS 环境的混合应用程序中在后台启用 MQTT 服务
【发布时间】:2016-02-18 19:03:43
【问题描述】:

我正在使用带有 Paho MQTT(物联网)的 MobileFirst Platform 7.1,我正在尝试使用适用于 Android 和 iOS 的 mqtt 实现混合应用程序。

我已经在 Android 中测试了该应用程序,它在前台和后台运行时都按预期工作,

在 iOS 中,它无法按预期工作。它在前台正常工作,但在后台不能正常工作。我正在使用 XCode 和 iPhone 6 的 iPhone 模拟器进行测试。

我找到了一个使用 MobileFirst 和 MQTT 实现的项目。来自https://developer.ibm.com/mobilefirstplatform/documentation/integration/mq-telemetry-transport/

我只是添加主机和端口号并添加 android、ios 环境。但是 android 工作 iOS 面临同样的问题。

此时我能做什么?

更新:

在 iOS 中,它在前台正常工作。但是当我发送后台时,“MQTT 客户端”连接丢失表单代理。

此方法触发:

this.client.onConnectionLost = function() {
        alert("Connection lost!");
    };

另一方面,android ,windows 它非常适合前景和背景

例如:

我有一个房间,那里有一个 PIR 传感器。它像发布者一样工作。我的应用程序用户是订阅者。

当用户离开那个时候她打开应用程序的房间时,订阅和 发送应用背景。

任何时候有人在整个房间里,她都会收到通知。

【问题讨论】:

  • 您没有解释您遇到的具体实际问题。示例应用程序希望您处于前台,而不是后台。
  • @IdanAdar 万分抱歉,你能检查更新的部分吗?。
  • 答案中提供的链接是关于您从 Apple 获得的唯一明确答案,无需提交您的应用并查看他们是否接受。
  • 我找不到至少一种方法来管理混合应用程序,尝试了多种方法,失败并轻松管理原生应用程序 MQTT iOS 背景。

标签: ios iphone ibm-mq ibm-mobilefirst mqtt


【解决方案1】:

有关如何在 iOS 上后台运行的详细信息可以找到here。此链接还列出了 Apple 允许在后台运行的操作,如果您的应用不符合这些条件,那么它很可能会从应用商店中被淘汰。

该列表还显示了要在 Info.plist 中放置哪些 UIBackgroundModes 以标记您的应用需要后台访问。

【讨论】:

  • 答案是正确的。默认情况下,iOS 应用程序不会在后台运行 - 网络连接将断开。你需要让它在后台工作。
  • @IdanAdar 我知道!,我怎样才能在混合 MobileFirst 应用程序的后台工作。
  • 在 Xcode 中打开项目后,更改 info.plist 中的属性,如 hardillb 所述。
  • @IdanAdar hardillb 还提到“如果您的应用不符合这些标准,那么它很可能会从应用商店中被淘汰”。你的建议。改变属性?
  • 这不是 mobilefirst 可以向您承诺的。这是你和 Apple 之间的事。
【解决方案2】:

我找不到至少一种管理混合应用程序的方法,尝试了多种方法,失败并轻松管理原生应用程序 MQTT iOS 背景。

待办事项

计划对新平台(iOS、Windows Phone)的支持

Android版本增加后台服务支持

更多请查看此链接https://github.com/arcoirislabs/cordova-plugin-mqtt

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2017-12-06
    相关资源
    最近更新 更多