繁体   English   中英

Flutter_beacon 插件在 IOS 的后台不工作

[英]Flutter_beacon plugin is not working in Background for IOS

这里有什么解决方法可以让 MainActivity/App 在 IOS 的后台保持活跃。

因为我使用 2 个不同的插件同时扫描和广播。

这是我的扫描代码:我正在使用FLUTTER_BEACON插件

_streamRanging =
        flutterBeacon.ranging(regions).listen((RangingResult result) {
      print(result);
      if (result != null && mounted) {
        setState(() {
          _regionBeacons[result.region] = result.beacons;
          _beacons.clear();
          _regionBeacons.values.forEach((list) {
            _beacons.addAll(list);
          });
          _beacons.sort(_compareParameters);
        });
      }
    });

虽然这个问题专门针对 Flutter,但 iOS 对应用程序的后台使用强制执行某些规则,而不管应用程序是如何构建的:

  1. 当 iOS 应用程序在屏幕上不可见时,它被视为在后台。
  2. 在后台时,应用程序的信标测距被阻止,除非:

    一个。 该应用程序设置了一个后台进程(每次将应用程序置于后台时,它只会在 iOS 13+ 上启用 30 秒的测距) 在这里阅读更多

    湾。 设置后台进程,声明“位置”后台模式,并请求定期位置更新。 这将解锁无限的背景范围,但它可能无法获得应用商店的批准,除非你能证明一个明显的面向用户的背景位置优势是合理的。

    c。 作为 (b) 的替代方案,如果应用程序进行信标监控,如果可以定期触发信标监控区域进入或退出,它将解锁额外 30 秒的背景测距,如 (a) 中所述。 如果您可以在使用应用程序的位置部署交替信标,则可以做到这一点。

无论您是否使用 Flutter,(2)中描述的解决方法都是相同的。 Flutter 实现后台任务的具体方式当然不同。

编辑 2020 年 4 月 11 日: Apple 宣布了将在后台运行的新信标广告的计划。 请参阅此处了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM