ข้ามไปยังเนื้อหา

พุช VoIP

ใน iOS 8 Apple ได้เปิดตัว PushKit และพุช VoIP ซึ่งเป็นการแจ้งเตือนพุชรูปแบบใหม่ นอกเหนือจากฟังก์ชันพุชมาตรฐานแล้ว พุช VoIP ยังช่วยให้แอปสามารถรันโค้ดได้ก่อนที่จะแสดงการแจ้งเตือนให้ผู้ใช้เห็น

1. เพิ่มโมดูล PushwooshVoIP ไปยังโปรเจกต์ของคุณ

Swift Package Manager

Cocoapods

Terminal window
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'PushwooshXCFramework'
pod 'PushwooshFramework/PushwooshVoIP'
end

2. ในแท็บ Signing & Capabilities ให้เพิ่มความสามารถ Voice over IP โดยทำเครื่องหมายที่ช่องทำเครื่องหมาย ดังที่แสดงในภาพหน้าจอด้านล่าง:

3. เริ่มต้นโมดูล PushwooshVoIP ดังที่แสดงในโค้ดด้านล่าง

import UIKit
import PushwooshFramework
import PushwooshVoIP
import CallKit
import PushKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate, PWVoIPCallDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
/// Initializes the Pushwoosh VoIP module.
///
/// - Parameters:
/// - supportVideo: A Boolean value indicating whether video calls are supported.
/// - ringtoneSound: The name of the custom ringtone sound file to be used for incoming calls (e.g. `"mySound.caf"`).
/// - handleTypes: The type of call handle to support. Possible values:
/// - `1` – Generic
/// - `2` – Phone number
/// - `3` – Email address
Pushwoosh.VoIP.initializeVoIP(true, ringtoneSound: "mySound.caf", handleTypes: 1)
// Set delegate to receive VoIP call events
Pushwoosh.VoIP.delegate = self
return true
}
// MARK: - Required PWVoIPCallDelegate Callbacks
func voipDidReceiveIncomingCall(payload: PushwooshVoIP.PWVoIPMessage) {
// Handle incoming VoIP push
}
func pwProviderDidReset(_ provider: CXProvider) {
// Handle provider reset
}
func pwProviderDidBegin(_ provider: CXProvider) {
// Handle provider activation
}
}

4. โปรโตคอล PWVoIPCallDelegate กำหนด callbacks ที่จำเป็นและไม่จำเป็นสำหรับการจัดการวงจรชีวิตของการโทร VoIP และการโต้ตอบกับ CallKit

@objc public protocol PWVoIPCallDelegate: NSObjectProtocol {
/// Called when an incoming VoIP push is received.
@objc func voipDidReceiveIncomingCall(payload: PushwooshVoIP.PWVoIPMessage)
/// Optional: Called when the incoming call was successfully reported to CallKit.
@objc optional func voipDidReportIncomingCallSuccessfully(voipMessage: PushwooshVoIP.PWVoIPMessage)
/// Optional: Called when reporting the incoming call to CallKit failed.
@objc optional func voipDidFailToReportIncomingCall(error: Error)
/// Optional: Called when a new outgoing call is started.
@objc optional func startCall(_ provider: CXProvider, perform action: CXStartCallAction)
/// Optional: Called when an active call is ended.
@objc optional func endCall(_ provider: CXProvider, perform action: CXEndCallAction, voipMessage: PushwooshVoIP.PWVoIPMessage?)
/// Optional: Called when an incoming call is answered.
@objc optional func answerCall(_ provider: CXProvider, perform action: CXAnswerCallAction, voipMessage: PushwooshVoIP.PWVoIPMessage?)
/// Optional: Called when the call is muted or unmuted.
@objc optional func mutedCall(_ provider: CXProvider, perform action: CXSetMutedCallAction)
/// Optional: Called when the call is held or unheld.
@objc optional func heldCall(_ provider: CXProvider, perform action: CXSetHeldCallAction)
/// Optional: Called when a DTMF tone is played.
@objc optional func playDTMF(_ provider: CXProvider, perform action: CXPlayDTMFCallAction)
/// Called when the CallKit provider is reset.
@objc func pwProviderDidReset(_ provider: CXProvider)
/// Called when the CallKit provider begins.
@objc func pwProviderDidBegin(_ provider: CXProvider)
/// Optional: Provides the CallKit call controller instance.
@objc optional func returnedCallController(_ controller: CXCallController)
/// Optional: Provides the CallKit provider instance.
@objc optional func returnedProvider(_ provider: CXProvider)
/// Optional: Called when the audio session is activated.
@objc optional func activatedAudioSession(_ provider: CXProvider, didActivate audioSession: AVAudioSession)
/// Optional: Called when the audio session is deactivated.
@objc optional func deactivatedAudioSession(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession)
}

5. อัปโหลดใบรับรอง VoIP ของคุณไปยัง Pushwoosh Control Panel ตาม คู่มือการกำหนดค่า และเลือกเกตเวย์ Production

เพียงเท่านี้ก็เรียบร้อย!

แบ่งปันความคิดเห็นของคุณกับเรา

Anchor link to

ความคิดเห็นของคุณช่วยให้เราสร้างประสบการณ์ที่ดีขึ้น ดังนั้นเรายินดีที่จะรับฟังจากคุณหากคุณมีปัญหาใดๆ ในระหว่างกระบวนการผสานรวม SDK หากคุณประสบปัญหาใดๆ โปรดอย่าลังเลที่จะแบ่งปันความคิดเห็นของคุณกับเรา ผ่านฟอร์มนี้