iOS 13 无法在后台获取 VoIP 推送通知

2023-11-27

我正在使用 CallKit 和 PushKit 在 Swift 中开发软件电话。在 iOS 13 之前,VoIP 通知运行良好。但在 iOS 13 更新后,我的应用程序在后台时无法收到 VoIP 推送通知。在前台didReceiveIncomingPushWith被调用,但在后台它没有被调用。

我该如何解决这个问题?

Code

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    print("\(#function)")
    let voipPushResgistry = PKPushRegistry(queue: nil)
    voipPushResgistry.delegate = self
    voipPushResgistry.desiredPushTypes = [PKPushType.voIP]

    return true
}

func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType) {
    print("\(#function) token invalidated")
}

func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials, for type: PKPushType) {
    let deviceToken = credentials.token.reduce("", {$0 + String(format: "%02X", $1) })
    print("\(#function) token is: \(deviceToken)")
}

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
    print("\(#function)")
    print("It worked..")
    if type == .voIP {
        print("Uygulama aktif")
    }
}

Thanks.


如果您使用 Xcode 11(和 iOS 13 SDK)构建应用程序,如果您无法向 CallKit 报告,PushKit 将不再工作。

在 iOS 13.0 及更高版本上,如果您无法向 CallKit 报告呼叫, 系统将终止您的应用程序。多次不报告电话可能会 导致系统停止发送更多 VoIP 推送通知 到您的应用程序。如果您想发起 VoIP 呼叫而不使用 CallKit,使用 UserNotifications 注册推送通知 框架而不是 PushKit。

https://developer.apple.com/documentation/pushkit/pkpushregistrydelegate/2875784-pushregistry

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 13 无法在后台获取 VoIP 推送通知 的相关文章

  • iPhone 的电子书框架

    我有一本书想作为 iPhone 应用程序发布 有谁知道我可以使用免费 或便宜 的框架来实现这一目标 换句话说 我想为我的书创建一个独立的 XCODE 项目 其中包含 iPhone 用户将本书作为独立应用程序阅读所需的所有代码 我见过 O R
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 以编程方式使用 Stack Overflow 进行身份验证

    我想在我的 iPhone 应用程序中添加赞成和反对投票 MyStacks http itunes apple com gb app mystacks id360030953 mt 8 为此 我需要能够使用 Stack Overflow 对用
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 有什么方法可以询问方法的名称吗?

    我正在尝试调试我正在开发的 iPhone 应用程序 向各种源文件添加 50 条 NSLog 语句的想法让我感到很兴奋 我想做的是写一对陈述 比如 NSString methodName self methodName NSLog metho
  • 如何删除 UITableView 中的缩进?

    首先 我对此很陌生 我很可能忘记了一些非常简单的事情 问题 我正在制作一个应用程序 在 a 中显示来自 imgur com 的随机图像tableView 由于某种原因 所有单元格都会缩进少量 如下图所示 我摆弄了许多设置storyboard
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 如何在iOS中查找文本段范围

    如何在 iOS 中找到文本段 又名代码段 范围 意思是 文本段的起始地址和结束地址是多少 I found 这个有趣的帖子 http www pschweitzer fr p 12但它适用于 Android 但不适用于 iOS 经过一些挖掘和
  • 应用内购买:卡在 paymentWithProductIdentifiers - 已弃用

    我一直在设置应用内购买 我无法做到这一点 SKPayment paymentRequest SKPayment paymentWithProduct co za nideo 100shotsbuybeer 我从 SKPayment paym
  • UISearchBar 取消按钮没有响应

    我已经实现了搜索栏 一旦用户将焦点放在搜索栏中 它就会显示取消按钮 为此我写了searchBar showsCancelButton YES in my searchBarTextDidBeginEditing方法 在searchBarSe
  • MPMediaItemPropertyAssetURL 仅针对 iPhone 5s 返回 null

    我一直在使用以下代码从 MPMediaItemPickerController 返回的 MPMediaItem 对象中提取资产 url 以便我可以将音乐文件从用户 iPhone itunes 音乐库复制到文档文件夹进行处理 但在 iPhon
  • 使用 PhoneGap + iPhone 上传文件

    据我所知 PhoneGap 应用程序大部分 如果不是全部 都是 HTML5 CSS JavaScript iPhone 本身不提供上传文件的控件 PhoneGap是否提供任何允许用户上传文件的机制 图片 视频 以 iPhone 为例 我知道
  • 如何检查 iOS 分发配置文件是否启用了推送通知?

    我有一个应用程序应该启用推送通知 但由于某种原因没有启用它们 我见过其他人下载并安装了该应用程序 但它甚至没有提示他们授予发送推送通知的权限 正如预期的那样 此应用程序不会出现在其 设置 gt 通知 中 但是 在我的 iPad 上 我能够从
  • iPhone OS:从匿名对象获取方法和变量列表

    我正在构建我的第一个 iPhone Obj c 应用程序 并且我有大量的数据保存子类 我将它们传递给引用函数 对于 cite 函数 这些对象是匿名的 我需要找到一种方法来访问每个传递对象的所有变量 我一直在使用预构建的 NSArray 和选
  • 如何将 UIPopoverPresentationController 的高度设置为与 UITableView 相同

    我在我的应用程序上使用 UIPopoverPresentationController 在我的 iPhone 上显示弹出窗口 使用 UIModalPresentationNone 我希望尺寸随着 UITableView 的高度而动态变化 但
  • iPhone SDK - orkut API

    我曾使用 gData 库从 iPhone 中的 Google 联系人中检索联系人信息 同样 我将与 Orkut 合作 有没有像 gData 这样适用于 Orkut 的库 如果是这样 请给我链接 提前致谢 对于 orkut 我们有 orkut
  • UITableViewCell 的 viewDidAppear

    我通常使用viewDidAppear方法在视图完成出现后在视图上执行一些 UI 操作 我在各种情况下使用了此方法 它非常有用 但是 我需要在视图上进行一些 UI 更改UITableViewCell当它完成出现后 SDK中是否有任何可用的方法
  • 创建自定义 MCBrowserViewController

    有没有办法创建一个UITableView包含在中找到的相同信息MCBrowserViewController 我当前的代码只允许推送与我的应用程序设计不同的标准视图 self browserVC MCBrowserViewControlle
  • 方向改变时重新定位控件

    我知道自动布局可用于在方向改变时使尺寸和位置保持一致 当方向改变时 是否可以完全改变布局 例如 请查看下面的纵向模式下简单登录屏幕的线框 现在 如果我旋转设备 我想完全重新定位控件 这种事情可以用自动布局来完成吗 如果没有 我该怎么办 谢谢
  • UILocalNotification 在后台 10 分钟后不提示

    In didFinishLaunchingWithOptions调用函数的定时器循环httpRequest每 1 分钟间隔一次 BOOL application UIApplication application didFinishLaun

随机推荐

  • 在Python中将分钟转换为HH:MM格式[重复]

    这个问题在这里已经有答案了 首先 我想指出我是Python的初学者 我的问题是我不知道在 Python 中将分钟转换为 HH MM 格式的正确方法是什么 任何帮助表示赞赏 Use the divmod 功能 02d 02d format d
  • 如何从授权的 access_token 创建 GoogleCredential?

    我有一个像这样的 OAuth2 令牌 access token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx expires in 3600 refresh token xxxxxxxxxxxxxxx
  • 客户端已断开连接

    我在 WebAPI 日志中收到以下错误 System Web HttpException 0x800703E3 客户端已断开连接 在 System Web Hosting IIS7WorkerRequest EndRead IAsyncRe
  • 如何使用 winapi 了解 Windows 文件系统中的文件何时以及哪些文件被更改

    我为教育目的制作了具有间谍软件功能的程序 我需要在程序中知道文件系统何时更改文件以及正在更改哪些文件 我怎样才能在 C 中做到这一点 在 Windows 上 查看SHChangeNotifyRegister 它不仅告诉您发生了何种类型的更改
  • 如何连接Heroku Redis TLS节点?

    我似乎无法在 Node 上使用 TLS 连接到 Heroku Redis 这些文档并没有多大帮助 https devcenter heroku com articles secure heroku redis 有人有一个有效的例子吗 我应该
  • Markdown 将 JavaScript 中的双星号转换为粗体文本

    我正在尝试制作自己的可降价文本区域 就像 Stackoverflow 所做的那样 目标是让人们能够打字 blah blah 在文本区域中 并在 div 中输出 span style font weight bold blah blah sp
  • PHP:对象分配给静态属性,这是非法的吗?

    将某个对象分配给静态属性是非法的吗 我在下面的代码中收到 HTTP 500 错误 require once class linkedlist php class SinglyLinkedlistTester public static ll
  • 创建自定义 TSetProperty 属性编辑器

    我正在尝试为某些自定义组件创建自定义属性编辑器 自定义属性编辑器旨在编辑一些设置属性 例如 type TButtonOption boOption1 boOption2 boOption3 TButtonOptions set of TBu
  • 在 VB.NET 字符数组中添加“c”有什么作用?

    我想使用 String 方法 IndexOfAny 来检查指定字符串中是否存在字符 我在网上找到的使用 IndexOfAny 方法的示例在使用 VB NET 时在字符数组中的每个字符后面包含一个 c 然而 当我查看 VB NET 中简单字符
  • 无锁同步

    我的问题与多线程无锁同步有关 我想知道以下内容 实现这一目标的一般方法是什么 我在某处读到过有关 LockFreePrimitives 的内容 如 CompareAndExchange CAS 或 DoubleCompareAndExcha
  • 相关模型的每个实例的活动管理范围

    我对动态活动管理范围有疑问 我试图为我的应用程序中 项目 的每个 经理 创建一个范围 但是 当创建新的经理 或分配给项目 时 范围似乎不会更新 但如果我重新启动服务器 它们会更新 所以代码本身 有效 但显然不是按照我希望的方式 我是一个 r
  • Cert-Manager 证书续订流程 - 如何执行?

    我在用cert manager v0 10 0从其安装舵图 我在用kong就像入口控制器来管理入口操作 所以我创建了一个ClusterIssuer资源 以便可以通过 kong ingress 控制器从 Ingress 资源联系它 The C
  • C 语言中 ~0 的值是多少?

    我想得到的值INT MIN and INT MAX 我试过了 0 and 0 gt gt 1因为最左边的位是符号位但我得到了 1对于他们俩来说 很困惑为什么 0事实并非如此0xffffffff and 0 gt gt 1 to be 0x7
  • Yolo 没有开始训练

    我正在尝试在自定义数据集上训练 Yolo 一切似乎都正常运行 没有错误 但它只是没有训练 我按照教程进行操作https github com AlexeyAB darknet两次但我得到相同的结果 darknet detector trai
  • 资源解释为文档,但使用 MIME 类型 image/jpeg 进行传输

    我正在使用 Filepicker io 处理网站上的图像上传 我还使用 FancyBox 来显示一个漂亮的滑块 如果我使用常规图像 则一切正常 http i imgur com asdf jpeg as the img src 这意味着我单
  • 在 Unity 中验证 SSL\TLS 证书

    我在统一证书验证方面遇到问题 我使用 Net 类 HttpWebResponse 发出请求并向 ServicePointManager ServerCertificateValidationCallback 提供回调函数 该证书由权威机构签
  • 替换 JavaFX GridPane 中 (row,col) 处的节点

    我正在制作一个基于错误 感知 和吃食物的网格式游戏 模拟 我正在使用 gridPane 称为worldGrid 标签来显示虫子和食物的网格 当错误将细胞移向食物等时 这显然会不断更新 我目前有一个功能updateGrid int col i
  • 克隆 git“shallow”存储库时出错

    发出命令时出现以下错误git clone bare path to repo fatal attempt to fetch clone from a shallow repository 首先 什么是浅存储库 为什么它不允许我克隆它 将 g
  • 将整个 Javascript 文件包装在像“(function(){ … })()”这样的匿名函数中的目的是什么?

    我最近读了很多 Javascript 我注意到整个文件在要导入的 js 文件中像下面这样包装 function code 这样做的原因是什么而不是一组简单的构造函数 它通常是命名空间 见下文 并控制成员函数和 或变量的可见性 将其视为对象定
  • iOS 13 无法在后台获取 VoIP 推送通知

    我正在使用 CallKit 和 PushKit 在 Swift 中开发软件电话 在 iOS 13 之前 VoIP 通知运行良好 但在 iOS 13 更新后 我的应用程序在后台时无法收到 VoIP 推送通知 在前台didReceiveInco