You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Swift
		
	
| import UIKit
 | |
| import PushKit
 | |
| import Flutter
 | |
| import Firebase
 | |
| import flutter_callkit_incoming
 | |
| import flutter_local_notifications
 | |
| 
 | |
| // PKPushRegistryDelegate
 | |
| @UIApplicationMain
 | |
| @objc class AppDelegate: FlutterAppDelegate {
 | |
|   override func application(
 | |
|     _ application: UIApplication,
 | |
|     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
 | |
|   ) -> Bool {
 | |
|      FirebaseApp.configure()
 | |
|      FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in
 | |
|            GeneratedPluginRegistrant.register(with: registry)
 | |
|        }
 | |
| //       if #available(iOS 10.0, *) {
 | |
| //         UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate
 | |
| //       }
 | |
|     GeneratedPluginRegistrant.register(with: self)
 | |
| 
 | |
|         //Setup VOIP
 | |
| //        let mainQueue = DispatchQueue.main
 | |
| //        let voipRegistry: PKPushRegistry = PKPushRegistry(queue: mainQueue)
 | |
| //        voipRegistry.delegate = self
 | |
| //        voipRegistry.desiredPushTypes = [PKPushType.voIP]
 | |
| 
 | |
|         return super.application(application, didFinishLaunchingWithOptions: launchOptions)
 | |
|     }
 | |
| 
 | |
|     // Handle updated push credentials
 | |
| //    func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials, for type: PKPushType) {
 | |
| //        print(credentials.token)
 | |
| //        let deviceToken = credentials.token.map { String(format: "%02x", $0) }.joined()
 | |
| //        //Save deviceToken to your server
 | |
| //        SwiftFlutterCallkitIncomingPlugin.sharedInstance?.setDevicePushTokenVoIP(deviceToken)
 | |
| //    }
 | |
| 
 | |
| //    func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType) {
 | |
| //        print("didInvalidatePushTokenFor")
 | |
| //        SwiftFlutterCallkitIncomingPlugin.sharedInstance?.setDevicePushTokenVoIP("")
 | |
| //    }
 | |
| 
 | |
| //    // Handle incoming pushes
 | |
| //    func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
 | |
| //        print("didReceiveIncomingPushWith")
 | |
| //        guard type == .voIP else { return }
 | |
| //        print(payload.dictionaryPayload)
 | |
| ////         let id = payload.dictionaryPayload["id"] as? String ?? ""
 | |
| ////         let nameCaller = payload.dictionaryPayload["nameCaller"] as? String ?? ""
 | |
| ////         let handle = payload.dictionaryPayload["handle"] as? String ?? ""
 | |
| //        let isVideo = payload.dictionaryPayload["isVideo"] as? Bool ?? false
 | |
| ////
 | |
| ////
 | |
| //         let data = flutter_callkit_incoming.Data(id: "1", nameCaller: "Mohemm", handle: "handle", type: isVideo ? 1 : 0)
 | |
| ////         data.extra = ["user": "abc@123", "platform": "ios"]
 | |
| ////         data.iconName = "Mohemm"
 | |
| //        SwiftFlutterCallkitIncomingPlugin.sharedInstance?.showCallkitIncoming(data, fromPushKit: true)
 | |
| //    }
 | |
| 
 | |
| 
 | |
| }
 |