繁体   English   中英

从锁定的 iOS 设备接听 VoIP 呼叫后,直接打开 iOS (Flutter) 应用程序

[英]Open iOS (Flutter) app directly after answering VoIP call from locked iOS device

我正在做的一个项目主要围绕一个好的 UI/UX 工作。 我面临的一个问题是在锁定的 iOS 设备上接听电话。

文档:

Apple 引入了CallKitPushKit功能以允许访问本机呼叫屏幕,这很好,但在我的情况下并不理想。

关于这两个组件都有很好的文献,例如

以前问过?

关于这个问题有很多问题,主要集中在2年前,这就是我再次问的原因。

一些额外的 CallKit/PushKit 教程

据我所知,问题不在于这些,它提供了一种在回答后直接打开应用程序的机制。

可行的解决方案

使用当前实现的唯一方法是使用CallKit屏幕上 6 个按钮中的最后一个(可以选择使用AppIcon ),请参见图像 [Masked Image Icon]:

在此处输入图像描述

例子:

问题:

在从锁定的 state 接听 VoIP 呼叫时,我找不到任何解决方案来打开我的 iOS(Flutter 应用程序) - 这有可能吗?

我不知道您是否仍然需要该解决方案,但为了其他人发现这个问题:我在另一个 Stackoverflow 帖子中找到了答案。

链接: iOS CallKit。 直接跳转到应用

为了清楚起见,我在此处复制答案(将 go归功于 0awawa0 )请注意,代码示例位于 Swift 中。

所以显然,如果你设置。 对于您的hasVideo属性为 true
上报来电时CXCallUpdate ,接到来电后系统会自动打开您的应用程序。 无论如何,文档中的任何地方都没有提到此功能。 或者,至少,我找不到任何关于它的信息。

这是我现在报告新呼叫的代码部分:

 let update = CXCallUpdate() update.remoteHandle = CXHandle(type: .generic, value: handle) update.hasVideo = true // <- was false earlier, setting to true did the trick update.supportsDTMF = false update.supportsHolding = true update.supportsGrouping = false update.supportsUngrouping = false callProvider.reportNewIncomingCall(with: uuid, update: update, completion { error in /*...*/ }

您是否只想通过通话来解锁 iPhone? 我不认为这是可能的。 这将是一个主要的安全漏洞。

如果您的应用支持通话,则它可能还包含消息和其他私人信息。 如果一个电话会解锁设备(即使只是针对您的应用程序),只需在不知道电话密码的情况下接听电话即可访问它

您目前为 Flutter 使用哪个包? 这可以让我们知道如何做到这一点。

我遇到了同样的问题,您是否找到了解决您问题的方法?

暂无
暂无

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

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