ios vpn app 手动kill之后 断开vpn

299 阅读1分钟
import Flutter
import UIKit
import AppIntents
import Foundation
import NetworkExtension


@main
@objc class AppDelegate: FlutterAppDelegate {
var providerManager: NETunnelProviderManager?
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
      var controller =  window?.rootViewController as! FlutterViewController;
      controller.isViewOpaque = false
      GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }


    override func applicationWillTerminate(_ application: UIApplication) {
        self.providerManager?.connection.stopVPNTunnel()
         print("applicationWillTerminate")
     }


    override func applicationDidBecomeActive(_ application: UIApplication) {
       super.applicationDidBecomeActive(application)
       loadProviderManager()
    }


    func loadProviderManager() {
        NETunnelProviderManager.loadAllFromPreferences { (managers, error) in
            if error == nil {
                self.providerManager = managers?.first ?? NETunnelProviderManager()
            }
        }
    }
}