gpt4 book ai didi

ios - 如何在 Flutter 插件中覆盖 iOS App 生命周期

转载 作者:行者123 更新时间:2023-12-02 00:10:55 27 4
gpt4 key购买 nike

在我的 flutter 插件的 Swift 端,我需要覆盖 applicationDidBecomeActiveapplicationWillResignActive 但我不知道该怎么做。

假设它只是一个普通的 flutter 应用程序,我会在 AppDelegate 中完成此操作:

   override func applicationDidBecomeActive(_ application: UIApplication) {

}

override func applicationWillResignActive(_ application: UIApplication) {

}

但这似乎不适用于插件类。

请注意,我知道我可以使用 AppLifecycleState 来做到这一点在 Flutter 端,但正如我所说,在 Swift 端执行此操作很重要

最佳答案

您需要实现 FlutterApplicationLifeCycleDelegate 接口(interface),并在您的 FlutterPlugin 类上使用 register 方法注册它。

OBS:FlutterPlugin类已经继承了FlutterApplicationLifeCycleDelegate接口(interface),无需担心

第 1 步:将您的插件注册为 ApplicationDelegate 类:

public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "my_wonderful_plugin_id", binaryMessenger: registrar.messenger())
let instance = MyWonderfulPlugin() // YOUR PLUGGIN NAME INSTEAD

registrar.addMethodCallDelegate(instance, channel: channel)
registrar.addApplicationDelegate(instance) // THIS IS THE BIG SECRET
}

第 2 步:实现接口(interface),包括插件类中的以下方法:

public func applicationDidBecomeActive(_ application: UIApplication) {
debugPrint("applicationDidBecomeActive")
}

public func applicationWillTerminate(_ application: UIApplication) {
debugPrint("applicationWillTerminate")
}

public func applicationWillResignActive(_ application: UIApplication) {
debugPrint("applicationWillResignActive")
}

public func applicationDidEnterBackground(_ application: UIApplication) {
debugPrint("applicationDidEnterBackground")
}

public func applicationWillEnterForeground(_ application: UIApplication) {
print("applicationWillEnterForeground")
}

就是这样!雅虎!

关于ios - 如何在 Flutter 插件中覆盖 iOS App 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59179122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com