O2FlutterViewController.swift 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // O2FlutterViewController.swift
  3. // O2Platform
  4. //
  5. // Created by FancyLou on 2019/3/14.
  6. // Copyright © 2019 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import Flutter
  10. import O2OA_Auth_SDK
  11. import CocoaLumberjack
  12. class O2FlutterViewController: FlutterViewController {
  13. let channelName = "net.o2oa.flutter/native_get" //flutter通道名称
  14. override func viewDidLoad() {
  15. super.viewDidLoad()
  16. let flutterEngine = self.engine
  17. GeneratedPluginRegistrant.register(with: flutterEngine)
  18. processFlutterMethod(flutterEngine!)
  19. }
  20. /**
  21. 处理Native和Flutter通道
  22. **/
  23. private func processFlutterMethod(_ engine: FlutterEngine) {
  24. let messagechannel = FlutterMethodChannel.init(name: channelName, binaryMessenger: engine)
  25. messagechannel.setMethodCallHandler { (call, result) in
  26. DDLogDebug("call method........\(call.method)")
  27. if call.method == "o2Config" {
  28. //初始化flutter的时候传递给flutter端的参数 o2Theme、o2UserInfo、o2UnitInfo、o2WebServerInfo、o2AssembleServerInfo
  29. var dic = [String:String]()
  30. dic["o2Theme"] = "red"
  31. let user = O2AuthSDK.shared.myInfo()
  32. let jsonUser = user?.toJSONString()
  33. dic["o2UserInfo"] = jsonUser
  34. let unit = O2AuthSDK.shared.bindUnit()
  35. let jsonUnit = unit?.toJSONString()
  36. dic["o2UnitInfo"] = jsonUnit
  37. let center = O2AuthSDK.shared.centerServerInfo()
  38. let jsonCenter = center?.toJSONString()
  39. dic["o2CenterServerInfo"] = jsonCenter
  40. result(dic)
  41. }
  42. if call.method == "closeSelf" {
  43. self.closeSelf()
  44. }
  45. }
  46. }
  47. @objc private func closeSelf() {
  48. DDLogDebug("close lalalalaalalalal ...........")
  49. self.dismiss(animated: false, completion: nil)
  50. }
  51. }