问题标签 [pushkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
180 浏览

ios - iOS - 用户接受视频通话后询问密码/TouchID?

我正在处理一个需要 VOIP 和视频通话的项目。现在,我实现了 PushKit 来初始化 CallKit。我想向用户询问密码/TouchID(因为在用户接听电话后,它会将应用程序导航到视频通话控制器)。但是,我在网上搜索并找到了不相关的主题。

有2例。

第一个:应用程序处于活动状态或后台但不是锁屏 -> 导航到调用视图控制器

第二:应用程序是后台/不活动的锁屏 -> 需要询问密码才能导航。

我当前的问题是:如果设备被锁定并且用户接受了来自锁屏的呼叫-> 没有任何反应并且我的应用程序仍在后台。

任何人都可以帮我一把吗?

下面是我当前的代码:(我在 CXCallActionAnswer 上添加了这个片段)

谢谢

0 投票
3 回答
1611 浏览

ios - 如果应用程序从后台终止,则不会收到 Pushkit 通知

我正在使用PKPushkitvoip 呼叫通知。

如果我的应用程序从后台被杀死,那么我将无法在内部收到通知:

虽然如果应用程序在后台,通知正在工作。我已启用项目本身的以下设置。

1) 在功能内部,推送通知是开启的。

2) 背景模式开启:

一个。应用程序使用 AirPlay 播放音频或流式传输音频/视频。

湾。应用程序从网络下载内容。

C。应用程序下载内容以响应推送通知。

d。应用程序提供 IP 语音服务。

任何人都可以帮我找出我失踪的地方吗?

0 投票
3 回答
6508 浏览

ios - Callkit 通话结束问题(错误域=com.apple.callkit.error.requesttransaction code=4)和通话接受后的音频问题

我制作了 VOIP App。为此,我将 PushKit 和 Callkit 与 pjsip 一起使用。

当后台应用程序收到呼叫通知并基于此我打开 callkit 屏幕并单击接受呼叫后使用 pjsip 连接。

1)调用结束问题

但是当调用 hangout pjsip 成功调用 hangout 但随后 callkit 给我以下错误:

错误域=com.apple.callkit.error.request 事务代码=4

为此,我检查了答案和结束通话 uuid 也相同,但又不是结束通话。我花了很多时间但没有得到任何解决方案。

任何人都有解决方案然后请帮助我。

2) 接听电话后的音频问题

接受呼叫音频后未配置。音频会话给我以下错误:

音频会话错误:错误域 = NSOSStatusErrorDomain 代码 = 561017449 “(null)” [aurioc] 892:失败:'!pri'(启用 3,outf< 1 ch,44100 Hz,Int16> inf< 1 ch,44100 Hz,Int16 >)

对于上述错误,任何人都有解决方案然后给我。

谢谢你。

0 投票
0 回答
171 浏览

ios - iOS pushKit pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials neverCall in Individual devices

  1. 开了
  2. 功能 - 推送通知已打开
  3. 后台模式:IP语音打开后台获取打开远程通知打开位置更新打开;代码: 在此处输入图像描述

代表<PKPushRegistryDelegate>也观察到,但只是一些设备(特别是小概率)从不调用didUpdatePushCredentials()方法,我测试了很多次,(卸载应用程序,安装应用程序),它也从不调用这个方法,但是当我重启设备时调用方法,有没有人摔倒过在这个情况下?谁能解释一下?

0 投票
1 回答
1769 浏览

ios - 后台模式下的 WebRTC 音频会话 iOS

我在 iOS 中使用 WebRTC 进行视频通话。在早期的 Xcode/iOS 版本中,后台模式下的音频和 IP 语音。它在后台模式下工作正常。

现在,我看到 Xcode 9 中缺少 IP 语音,并且呼叫在后台断开连接。

它提供了选项

“来自调试器的消息:由于信号 9 而终止”

几秒钟后(50 秒)。

有什么指导方针吗?

0 投票
1 回答
282 浏览

ios - 如何使用 pushkit 处理 App 活动/非活动状态

我正在使用 Pushkit 从通知中保存数据并在保存数据后显示本地通知。

例如:- 我正在向设备发送 10 个 pushkit 通知。

当第一个本地通知到达时,应用程序自动进入活动状态,然后我没有收到任何其他本地通知。

1.) 如何使用 Pushkit 管理活动/非活动状态?

2.) 如何使用 Pushkit 处理本地通知?

谢谢

0 投票
1 回答
1769 浏览

ios - pushRegistry:didUpdate:pushCredentials 没有被调用

查看了有关此问题的过去问题,但这些问题的答案已应用于我的项目,但 pushRegistry() 委托方法没有被调用。

首先是代码:

已启用以下应用程序功能: - 推送通知 - 后台模式 - 后台获取 - 远程通知

我正在使用 Xcode 9.1 Beta,它不再具有 Voip 作为显式功能,显然这不再需要并且导入 PushKit 就足够了。

在供应门户上,已为应用程序 ID 启用推送通知。(已经生成了一个无效推送证书,但显然还不能使用它来发送推送)

0 投票
1 回答
1106 浏览

ios - Voip Push:在什么情况下会调用 didInvalidatePushTokenForType?

didInvalidatePushTokenForType 的文档说它是可选的实现并且还说这个

如果先前提供的推送令牌不再有效,则调用此方法。请求注册无需任何操作。此反馈可用于更新应用程序的服务器,使其不再向此设备发送指定类型的推送通知。

因此,究竟为什么有人不想实现这一点?如果令牌不再有效,则服务器将永远无法再次向该设备发送 Voip 推送,因此手机上的应用程序是否不想尽快知道其是否无效,以便可以向该设备发送新令牌服务器?

我一直在尝试搜索信息和使用 didInvalidatePushTokenForType() 但似乎每个人都只是将此方法复制并粘贴到他们的源代码中,因为其他人都复制并粘贴了它。但似乎没有人用它做任何事情。但似乎喜欢它应该是一个非常重要的方法来使用,那么为什么显然没有人呢?令牌什么时候会失效?

0 投票
1 回答
916 浏览

ios - Pushkit and content-available

if I'm using pushkit to notifier the phone that a new call has been received, do I have to use content-available tag inside payload? Or not? Because using this, it seems that app is not relaunched always instantaneously sometimes

0 投票
1 回答
3056 浏览

ios - VoIP、PushKit 和应用程序唤醒

我正在使用 PushKit 和 CallKit 开发一个 VoIP 应用程序。我知道类似的问题在不同的论坛上经常被问到,但不幸的是从未真正得到回答。此外,这些帖子中的大多数都来自 2015 年左右,所以我认为很有可能已经发生了很多变化,因为有人可能已经想到了如何让它发挥作用。

什么工作:

当应用程序在前台运行或发送到后台时,它使用沙盒服务器以及生产服务器接收推送通知。

我在 iOS 11 和 Xcode 9 上,需要在“功能”中启用常规推送通知,以及手动将 voip 背景模式添加到 info.plist 以调用委托方法。单独连接 CallKit 和 PushKit 不足以接收通知。我还启用了后台音频、后台获取和远程通知。在进行推送注册表注册之前,我还创建了一个后台任务,并在收到推送令牌后结束该任务。

什么不起作用:

重启后唤醒应用程序或强制退出来电。

我在 Instruments 活动监视器中看到来电启动的过程,但看起来有些东西从那里不起作用,因为我没有收到来电 ui。

问题:

  1. 当应用程序未运行时,传入通知的入口点是什么?-pushRegistry:didReceiveIncomingPushWithPayload:forType:或者也许(仅)-application:didFinishLaunchingWithOptions:
  2. 我存储了我的凭据以在钥匙串中向服务器注册。是否有可能在应用程序启动期间查询钥匙串为时过早?

更新:

自己想出了一个解决方案。这更像是客户端和服务器之间的时间问题。所以这对我有用。

  1. 从启动应用程序的服务器发送推送
  2. 收到推送后,给应用程序一些时间在 sip 服务器上启动和重新注册
  3. 使用最新的注册信息向客户端发送邀请

同样重要的是不要过早调用推送通知委托上的完成处理程序,这将使应用程序重新进入睡眠状态并且永远不会收到邀请。

也可能会有所帮助,并且可以使场景更加宽容。如果您的 sip 服务器多次发送邀请,请确保在每个服务器上始终使用最新的注册信息。意思.. 假设第一个 INVITE 发送得太早了一些过时的注册信息,客户端仍然启动尝试更新服务器上的信息......确保下一个使用更新的信息。一些 sip 服务器只使用每次迭代可用的第一个信息。因此,您将永远等待而不会在客户端上收到任何东西。