我正在搜索有关VoIP推送通知的推送通知的信息。我有点不清楚:
1)如果用户没有打开应用程序,那么他接到一个电话。从通知中启动应用程序是否有意义?
2)应用程序如何等待特定事件?例如,我的设备如何知道他接到某人的电话?
3)我使用来自https://github.com/Hitman666/ios-voip-push的Appdelegate文件,但在我的情况下它不起作用(很多错误),here是我得到的错误的预览。
由于
答案 0 :(得分:7)
1)如果用户尚未打开该应用程序,则他接到一个电话。从通知中启动应用程序是否有意义?
- 首次用户必须点击应用图标并将其打开,然后只有设备ID才会注册以接收推送工具包有效负载。然后无需打开应用程序。当应用程序处于被杀死状态时,它也会起作用,您必须根据推送工具包的有效负载安排本地通知。
2)应用程序如何等待特定事件?例如,我的设备如何知道他接到某人的电话?
- 您必须根据推送工具包有效负载安排本地通知。
3)我使用来自https://github.com/Hitman666/ios-voip-push的Appdelegate文件,但在我的情况下它不起作用(许多错误),这里是我得到的错误的预览。
- 请参阅以下代码
import UIKit
import PushKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate,PKPushRegistryDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let types: UIRemoteNotificationType = [.Alert, .Badge, .Sound]
application.registerForRemoteNotificationTypes(types)
self.PushKitRegistration()
return true
}
//MARK: - PushKitRegistration
func PushKitRegistration()
{
let mainQueue = dispatch_get_main_queue()
// Create a push registry object
if #available(iOS 8.0, *) {
let voipRegistry: PKPushRegistry = PKPushRegistry(queue: mainQueue)
// Set the registry's delegate to self
voipRegistry.delegate = self
// Set the push type to VoIP
voipRegistry.desiredPushTypes = [PKPushTypeVoIP]
} else {
// Fallback on earlier versions
}
}
@available(iOS 8.0, *)
func pushRegistry(registry: PKPushRegistry!, didUpdatePushCredentials credentials: PKPushCredentials!, forType type: String!) {
// Register VoIP push token (a property of PKPushCredentials) with server
let hexString : String = UnsafeBufferPointer<UInt8>(start: UnsafePointer(credentials.token.bytes),
count: credentials.token.length).map { String(format: "%02x", $0) }.joinWithSeparator("")
print(hexString)
}
@available(iOS 8.0, *)
func pushRegistry(registry: PKPushRegistry!, didReceiveIncomingPushWithPayload payload: PKPushPayload!, forType type: String!) {
// Process the received push
}
}
获取有关如何将pushkit集成到基于VOIP的应用程序的更多信息。
刚刚使用Swift 4.0代码更新。
https://github.com/hasyapanchasara/PushKit_SilentPushNotification