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.
83 lines
3.5 KiB
Swift
83 lines
3.5 KiB
Swift
import UIKit
|
|
import Flutter
|
|
import OpenTok
|
|
|
|
// Created by Mohammad Aljammal & Elham Rababah on 24/06/20.
|
|
// Copyright © 2020 Cloud. All rights reserved.
|
|
|
|
@UIApplicationMain
|
|
@objc class AppDelegate: FlutterAppDelegate ,ICallProtocol {
|
|
|
|
var result: FlutterResult?
|
|
|
|
|
|
func sessionDone(res:Any) {
|
|
self.result?(res)
|
|
|
|
}
|
|
func sessionNotResponded(res:Any) {
|
|
self.result?(res)
|
|
}
|
|
|
|
override func application(
|
|
_ application: UIApplication,
|
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
|
) -> Bool {
|
|
|
|
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
|
|
let videoCallChannel = FlutterMethodChannel(name: "Dr.cloudSolution/videoCall",
|
|
binaryMessenger: controller.binaryMessenger)
|
|
videoCallChannel.setMethodCallHandler({
|
|
(call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
|
|
self.result = result
|
|
switch call.method {
|
|
case "openVideoCall":
|
|
do {
|
|
let arguments = call.arguments as? NSDictionary
|
|
let kApiKey = arguments!["kApiKey"] as? String
|
|
let kSessionId = arguments!["kSessionId"] as? String
|
|
let kToken = arguments!["kToken"] as? String
|
|
let appLang = arguments!["appLang"] as? String
|
|
let vC_ID = arguments!["VC_ID"] as? Int
|
|
let tokenID = arguments!["TokenID"] as? String
|
|
let generalId = arguments!["generalId"] as? String
|
|
let doctorId = arguments!["DoctorId"] as? Int
|
|
let baseUrl = arguments!["baseUrl"] as? String
|
|
|
|
self.openVideoChat(result: result,kApiKey: kApiKey!,kSessionId:kSessionId!,kToken: kToken!, appLang: appLang!, vC_ID: vC_ID!,tokenID: tokenID!,generalId: generalId!,doctorId: doctorId!, baseUrl: baseUrl!)
|
|
}
|
|
default:
|
|
result(FlutterMethodNotImplemented)
|
|
}
|
|
})
|
|
|
|
GeneratedPluginRegistrant.register(with: self)
|
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
|
}
|
|
|
|
|
|
|
|
|
|
private func openVideoChat(result: FlutterResult,kApiKey: String, kSessionId: String,kToken: String,appLang:String, vC_ID: Int,tokenID:String,generalId:String,doctorId:Int,baseUrl:String) {
|
|
|
|
let storyboard = UIStoryboard(name: "Main", bundle: nil)
|
|
let identifier = "ViewControllerNav"
|
|
let navVC = storyboard.instantiateViewController(withIdentifier: identifier) as! UINavigationController
|
|
let videoVC = navVC.viewControllers.first as! ViewController
|
|
videoVC.kApiKey=kApiKey
|
|
videoVC.kSessionId=kSessionId
|
|
videoVC.kToken=kToken
|
|
videoVC.VC_ID = vC_ID
|
|
videoVC.generalid = generalId
|
|
videoVC.TokenID = tokenID
|
|
videoVC.DoctorId = doctorId
|
|
videoVC.baseUrl = baseUrl
|
|
videoVC.callBack = self
|
|
videoVC.navigationController?.setNavigationBarHidden(true, animated: false)
|
|
navVC.modalPresentationStyle = .fullScreen
|
|
window.rootViewController?.present(navVC, animated: true, completion: nil)
|
|
|
|
|
|
}
|
|
}
|