iOS VoIP 推送通知 (PushKit)
Posted
技术标签:
【中文标题】iOS VoIP 推送通知 (PushKit)【英文标题】:iOS VoIP push notifications (PushKit) 【发布时间】:2017-04-26 15:41:27 【问题描述】:我正在搜索有关 VoIP 推送通知的推送通知的信息。有些点我还不清楚:
1) 如果用户没有打开应用程序,然后他接到一个电话。有没有办法从通知中启动应用程序?
2) 应用程序如何等待特定事件?例如,我的设备如何知道他接到某人的电话?
3) 我使用来自https://github.com/Hitman666/ios-voip-push 的 Appdelegate 文件,但在我的情况下它不起作用(很多错误),here 是我得到的错误的预览。
谢谢
【问题讨论】:
见how to ask a question 这太宽泛了! 【参考方案1】: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
获取有关如何为基于 VOIP 的应用程序集成 pushkit 的更多信息。
刚刚更新了 Swift 4.0 代码。
https://github.com/hasyapanchasara/PushKit_SilentPushNotification
【讨论】:
嘿,我在 voip 通知方面需要您的帮助。 好的,您的查询是什么? 当 voip 通知到来时应用没有打开以上是关于iOS VoIP 推送通知 (PushKit)的主要内容,如果未能解决你的问题,请参考以下文章