【问题标题】:VoIP notifications in hybrid apps not working混合应用程序中的 VoIP 通知不起作用
【发布时间】:2020-02-06 16:14:46
【问题描述】:

最近,Apple 改变了处理 VoIP 通知的方式。现在他们强迫你在同一个运行循环中使用 CallKit,以免你的通知被丢弃。我得到的痕迹是这个

Apps receving VoIP pushes must post an incoming call (via CallKit or IncomingCallNotifications) in the same run loop as  pushRegistry:didReceiveIncomingPushWithPayload:forType:[withCompletionHandler:] without delay.

当您收到此警告 3 次时,系统正在“将您的通知丢在地上”。

这里的问题是我正在使用 phonegap-plugin-push 开发一个混合 VoIP 应用程序,而且我担心通知事件对于 iOS 来说不够快(或者至少不是相同的运行循环) .

有人遇到过这个问题吗?

我曾考虑改用常规推送通知,但我找不到一种方法让我的应用在被终止时重新启动并执行一些代码(例如启动 CallKit)。

编辑: 我正在使用推送通知尝试这种方法,并且我已经配置了后台模式。我注意到在通知中发送“内容可用”和一些数据,如“徽章”或“警报”,如果应用程序最近进入后台,则会启动该应用程序。在后台 15 分钟后,推送通知到达,但应用程序不再启动

提前谢谢你。

【问题讨论】:

    标签: ios ionic-framework push-notification voip hybrid


    【解决方案1】:

    我们的应用使用 CallKit 和推送通知,并在收到新来电的推送通知时启动。不过,它必须在项目构建中配置并运行一次才能在 iOS 中注册。

    【讨论】:

    • 您的应用是否也适用于 iOS 13。我编辑我的帖子以立即添加此内容!
    • @Borja,是的,iOS 13。顺便说一句,我们在连接到被测 iPhone 的 Mac 上的 Console 上发现了有用的信息。具体来说,有时来自 callservicesd 的日志条目实际上说“不会启动 因为……”
    • 当你说“它必须在项目构建中配置”时......我必须在哪里配置它?能给我一点提示吗?
    • 如果您是这个意思,我已经配置了后台模式。我注意到在通知中发送“内容可用”和一些数据,如“徽章”或“警报”,如果应用程序最近进入后台,则会启动该应用程序。在后台 15 分钟后,推送通知到达,但应用程序不再启动。
    • @Borja,是的,后台模式就是我的意思。在实践中,VoIP 推送通知到达手机,CallKit 启动我们的应用程序并传递通知,我们有大约 5 秒的时间向 CallKit 报告我们分配的 UUID。该报告提出了 CK 呼叫控制器。如果我们超过该时间,则会发出您描述的警告。我希望这个时间框架会有所帮助。
    【解决方案2】:

    我找到了解决办法:

    由于 iOS 更改了处理 voip 推送通知的政策,它会强制您在收到 voip 时报告新来电:https://forums.developer.apple.com/thread/117939

    这个插件可以做到:https://github.com/mattkhaw/cordova-plugin-callkit

    它合并了两个插件(WebsiteBeaver/CordovaCall 和 Hitman666/cordova-ios-voip-push)。它对我有用。我只需要从 javascript 中删除 receiveCall 并稍微调整一下插件。

    与 voip 通知寄存器相关的方法位于 cordovaCall 类中,因此使用起来非常简单。

    【讨论】:

    • 我也设法将插件集成到我的应用程序中。我遇到的问题是当应用程序处于后台/被杀死时没有收到通知。我正在使用 simplepush.php 脚本来测试这个github.com/Hitman666/cordova-ios-voip-push/blob/master/…(它的修改版本)。你是如何处理这个问题的?
    • 那个有什么吗?似乎当一切都在后台时,现在一切都好。当你杀死应用程序时,我的应用程序崩溃
    • 刚看到这个!很抱歉我没有回答。你成功了吗?
    猜你喜欢
    • 2016-07-24
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2021-04-05
    • 1970-01-01
    相关资源
    最近更新 更多