【问题标题】:MobileFirst 6.3 - Enabling location trigger in Background in Hybrid Applications for iOS environmentMobileFirst 6.3 - 在 iOS 环境的混合应用程序的后台启用位置触发器
【发布时间】:2015-05-11 19:11:45
【问题描述】:

我正在使用 MobileFirst Platform 6.3,我正在尝试实现适用于 Android 和 iOS 的混合应用程序,我在其中创建了进入/退出位置触发器,使用“enableHighAccuracy=true”,应用程序应始终监听当它在前台和后台时触发。

为两种环境(Android、iOS)添加正确的权限后,如知识中心链接所述:http://www-01.ibm.com/support/knowledgecenter/SSHS8R_6.3.0/com.ibm.worklight.dev.doc/dev/r_wl_location.html?lang=en

我已经在 Android 中测试了该应用程序,它在前台和后台运行时按预期工作,我只是在获取地理位置触发器时在 LogCat 中记录一条消息。

在 iOS 中,它无法按预期工作。它在前台正常工作,但在后台不能正常工作。我正在使用 XCode 的 iPhone 模拟器进行测试,当它在后台时,它不会在 XCode 控制台中记录消息。但是,当我检查了模拟器中的隐私设置时,它表明该应用有权获取“始终,在前台和后台”的位置!!

请告知,是否应该进行其他设置以使其在 iOS 中运行,并且如果应用程序在后台运行时日志记录不起作用是正常行为?

【问题讨论】:

  • 晕,能不能提供你的Xcode工程调试一下?

标签: gps geolocation ibm-mobilefirst background-application


【解决方案1】:

首先看这里如何设置在后台运行定位服务的权限: Background Location Services not working in iOS 7

Ios 有限制。在后台运行几分钟而没有任何位置更新后,应用将暂停,一旦用户恢复应用,将收到所有位置更新。

【讨论】:

  • 感谢大家的回复,我实际上发现获取的位置在后台没有记录的问题是我在 console.log 之前放置了警报 :) 并且使应用程序在每个警报处停止。实际上这在 Android 中不会发生,它是特定于 iOS 的。当我删除警报时,获取位置进入/退出并在 iOS 控制台中正常登录。再次感谢大家:)
【解决方案2】:

答案在 iOS 中,如果您希望应用程序在后台运行,请不要使用警报,因为它会使应用程序在尝试执行它的每个警报时停止。这在 Android 中不会发生。因此,当我在位置触发器的回调中删除警报时,它可以正常登录控制台并正常获取位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多