标签: pushkit

PushKit没有构思凭据

我在这里挣扎了一段时间,可能这是我的错误,但我无法在任何地方找到它,这是一个答案.

我在某些方面实现了PushKit,但没有一个是有效的.

我已经添加了正确的后台模式,以正确的方式实现了回调,didUpdatePushCredentials正在被正常调用...

但是,credentials: PKPushCredentials!变量,给我一个错误指针......它不是空的......不是零...没有任何东西......它根本就没有值......它被分配了垃圾......因为这个原因..我收到了EXC_BREAKPOINT ..

我试过3种不同的设备......行为相同......

我已经创建了VoIP推送证书......

我以不同的方式做到了:

  • 通过在didRegisterForRemotePushNotification之后创建void Push Registry对象
  • 通过创建推送注册表而无需注册远程推送通知...
  • 通过使用主队列,全局队列和自定义队列创建注册表.

总是一样......

这是代码:

extension AppDelegate : PKPushRegistryDelegate {

func registerForVoipPush() {

    self.registry = PKPushRegistry(queue:nil)

    if self.registry != nil {

        self.registry!.delegate = self
        self.registry!.desiredPushTypes = Set<String>(arrayLiteral: PKPushTypeVoIP)
    }

    //let notificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories:nil)
    //UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
}

func pushRegistry(registry: PKPushRegistry!, didUpdatePushCredentials credentials: PKPushCredentials!, forType type: String!) {

    //print out the VoIP token. We will use this to test the nofications.
    NSLog("voip token: \(credentials.token)") …
Run Code Online (Sandbox Code Playgroud)

voip push ios pushkit

7
推荐指数
1
解决办法
1618
查看次数

如何发送推送通知以在线测试iOS PushKit集成?

我已经实现了PushKit.现在我想获得推送通知.有没有办法在线获取推送通知,因为我们有许多在线APNS服务接受设备令牌和.pem文件来发送远程通知?

apple-push-notifications ios pushkit

7
推荐指数
2
解决办法
9524
查看次数

与Sinch VOIP的Pushkit不兼容pushkit

我正试图在我的IOS应用程序中使用Sinch实现App-to-App调用.我已经在我的iOS应用程序中使用Sinch实现了Pushkit,但是当应用程序处于后台时推送通知不起作用.

我有两个问题.

  1. 我是否需要另一个Web服务来单独向我的应用发送推送通知以进行传入应用,或者Sinch自己处理它.

  2. 如果它确实处​​理了自己,那么我的代码中缺少什么.

#import "AppDelegate.h"
@interface AppDelegate ()
@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];

    [self handleLocalNotification:[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]];

    self.push = [Sinch managedPushWithAPSEnvironment:SINAPSEnvironmentAutomatic];
    self.push.delegate = self;
    [self.push setDesiredPushTypeAutomatically];

    [self.push registerUserNotificationSettings];

    return YES;
 }
 - (BOOL)application:(UIApplication *)app
        openURL:(NSURL *)url
        options:(NSDictionary *)options {
    return [[GIDSignIn sharedInstance] handleURL:url
                           sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                  annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
  }

- (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
     annotation:(id)annotation {
    return [[GIDSignIn sharedInstance] handleURL:url
                           sourceApplication:sourceApplication
                                  annotation:annotation];
}

- …
Run Code Online (Sandbox Code Playgroud)

voip objective-c ios sinch pushkit

6
推荐指数
1
解决办法
825
查看次数

在 iOS 10.3 上 x 时间后应用未接收 VOIP &gt;

我有一个我正在处理的项目,该项目使用 VOIP 通知来“唤醒”已置于后台/终止的应用程序。这些通知会定期发送,在最近的 iOS 更新之前,一切似乎都运行良好。

似乎在应用程序处于后台一段时间后(某些用户在 5 分钟后发生,其他用户在 20 分钟后发生),设备在收到 voip 通知后不再处理任何代码。

我在苹果开发论坛上读过一些内容,其他一些开发人员也遇到了类似的问题,大家都猜测是否与新的 iOS 更新(10.3.1/10.3.2)有关。

有没有其他人遇到过这个问题,如果有,你能解决吗?

谢谢!

xcode voip ios pushkit ios10.3

6
推荐指数
1
解决办法
584
查看次数

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

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

当后台应用程序收到呼叫通知时,我打开 callkit 屏幕,然后单击接受呼叫后使用 pjsip 连接。

1)调用结束问题

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

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

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

任何人有解决方案,请帮助我。

2) 接听电话后出现音频问题

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

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

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

谢谢。

ios pushkit callkit

6
推荐指数
1
解决办法
8172
查看次数

Pushkit 令牌无法进入某些 iOS 设备

我已经实施了PushKit。我已按照以下步骤操作:

1.) /sf/answers/2672933861/

2.) /sf/answers/1999348711/

我能够获得didUpdatePushCredentials设备令牌。工作于 --> iPhone 5s , iPhone6 Plus

didUpdatePushCredentials 不适用于 --> iPhone6 和 iPhone7

我为所有设备使用相同的证书和构建。不知道确切的问题。如果有人遇到过这种问题,请分享解决方法。

我的代码和证书链接

代码 -> https://www.dropbox.com/sh/x2615t7xn8mavs3/AADbX5nBuF5_08YNPX8wI59ga?dl=0

cer -> https://www.dropbox.com/sh/70l4htj1c46emog/AABxBalaoN1JP22dQp8-mNXGa?dl=0

 Solution -----> I have changed Bundle identifier And create New certificate with New BundleId.
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications ios pushkit

5
推荐指数
1
解决办法
3576
查看次数

VOIP 通话断开后如何关闭 Callkit 屏幕

一旦我的 VoIP 呼叫按源或目的地断开连接,我将尝试删除 Callkit 屏幕。

我用了这个代码

CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]];
CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()];
requestTransaction:[CXTransaction transactionWithActions:nil completion:completion]];
Run Code Online (Sandbox Code Playgroud)

但关闭 callkit 不起作用。任何人都可以帮我解决这个问题吗?

voip pjsip ios pushkit callkit

5
推荐指数
1
解决办法
3029
查看次数

VoIP、PushKit 和应用程序唤醒

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

什么在起作用:

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

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

什么不起作用:

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

我看到在仪器活动监视器中的来电上启动了该进程,但看起来有些东西无法正常工作,因为我没有收到来电用户界面。

问题:

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

更新:

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

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

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

也可能有帮助,并且可以让场景变得更加宽容。如果您的 sip 服务器多次发送邀请,请确保每次都使用最新的注册信息。意思是……假设第一个 INVITE 发送得太早,导致某些过时的注册信息,并且客户端仍然尝试在服务器上更新该信息……确保下一个 INVITE 使用更新的信息。某些 sip 服务器仅使用每次迭代可用的第一个信息。所以你会永远等待而没有收到客户端的任何信息。

voip ios pushkit silentpush callkit

5
推荐指数
1
解决办法
3452
查看次数

配置文件不包括 com.apple.developer.pushkit.unrestricted-VOIP 权利

在 XCode 项目中,我添加了权利文件。现在,如果我在该文件中添加任何值,例如。

com.apple.developer.pushkit.unrestricted-voip Bool 是的。

运行时报错。配置文件“开发”不包括 com.apple.developer.pushkit.unrestricted-VOIP 权利。

如何在权利条目的供应配置文件中添加值?

voip entitlements ios provisioning-profile pushkit

5
推荐指数
1
解决办法
1424
查看次数

如何在 Flutter 中使用 Agora 实现 Callkeep?

我必须在 Agora 的帮助下创建通话应用程序。当应用程序位于前台时,这是可以的,但我想在应用程序处于后台或终止时接受呼叫。我正在尝试使用 Callkeep 插件来接受后台呼叫我找到了一种通过 FCM 后台消息的方法,但我不知道如何为 IOS 实现解决方案,它没有 FCM 后台消息我尝试使用 VOIP 通知,但我不知道如何要将它们发送到我的 flutter 应用程序,我使用 Firebase 作为后端,我需要适用于 Android 和 IOS 的解决方案,谢谢

voip dart pushkit flutter agora.io

5
推荐指数
1
解决办法
1660
查看次数