HHPlatform.swift 1.9 KB
//
//  FLPlatform.swift
//  Runner
//
//  Created by 程言方 on 2021/4/23.
//

import Foundation
import hhVDoctorSDK


class HHPlatform: NSObject {
    
    static let `default` = HHPlatform()
    
    private let channelId = "com.hh-medic.channel"
    
    private var channel: FlutterMethodChannel?
    
    
    func start() {
        self.startChannel()
    }
    
    private func startChannel() {
        
        let delegate = UIApplication.shared.delegate as! AppDelegate
        
        guard let vc = delegate.window.rootViewController as? FlutterViewController else {
            print("vc is none")
            return
        }
        
        channel = FlutterMethodChannel(name: channelId, binaryMessenger: vc.binaryMessenger)
 
        channel?.setMethodCallHandler { [weak self] (call, result) in
            
            guard let params = call.arguments as? [String: Any] else {return}
            
            switch call.method{
                
            case "skipToChatHome":
                
                self?.skipToChatHome(vc: vc, arguments: params)
                
                break
                
            default:
                break
            }
            
        }
    }

    func skipToChatHome(vc: UIViewController ,arguments: [String: Any]){
        
        guard let sdkProductId = arguments["sdkProductId"] as? String else {return}
        guard let userToken = arguments["userToken"] as? String else {return}
        let isDevelop = (arguments["isDevelop"] as? Bool) ?? false
        
        let option = HHSDKOptions(productId: sdkProductId, isDebug: false, isDevelop: isDevelop)
        HHMSDK.default.start(option: option)
        
        HHMSDK.default.login(userToken: userToken) { erroMsg in
            
            guard erroMsg == nil else {return}
            HHMSDK.default.skipChatHome(skipType: .present, vc: vc)
            
        }
        
        
    }

}