FlutterPlugin

Objective-C

@protocol FlutterPlugin <NSObject, FlutterApplicationLifeCycleDelegate>

Swift

protocol FlutterPlugin : FlutterApplicationLifeCycleDelegate

Implemented by the iOS part of a Flutter plugin.

Defines a set of optional callback methods and a method to set up the plugin and register it to be called by other application components.

  • Registers this plugin using the context information and callback registration methods exposed by the given registrar.

    The registrar is obtained from a FlutterPluginRegistry which keeps track of the identity of registered plugins and provides basic support for cross-plugin coordination.

    The caller of this method, a plugin registrant, is usually autogenerated by Flutter tooling based on declared plugin dependencies. The generated registrant asks the registry for a registrar for each plugin, and calls this method to allow the plugin to initialize itself and register callbacks with application objects available through the registrar protocol.

    Declaration

    Objective-C

    + (void)registerWithRegistrar:
        (nonnull NSObject<FlutterPluginRegistrar> *)registrar;

    Swift

    static func register(with registrar: FlutterPluginRegistrar)

    Parameters

    registrar

    A helper providing application context and methods for registering callbacks.

  • Set a callback for registering plugins to an additional FlutterPluginRegistry, including headless FlutterEngine instances.

    This method is typically called from within an application’s AppDelegate at startup to allow for plugins which create additional FlutterEngine instances to register the application’s plugins.

    Declaration

    Objective-C

    + (void)setPluginRegistrantCallback:
        (nonnull FlutterPluginRegistrantCallback)callback;

    Swift

    optional static func setPluginRegistrantCallback(_ callback: FlutterPluginRegistrantCallback)

    Parameters

    callback

    A callback for registering some set of plugins with a FlutterPluginRegistry.

  • Called if this plugin has been registered to receive FlutterMethodCalls.

    Declaration

    Objective-C

    - (void)handleMethodCall:(nonnull FlutterMethodCall *)call
                      result:(nonnull FlutterResult)result;

    Swift

    optional func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult)

    Parameters

    call

    The method call command object.

    result

    A callback for submitting the result of the call.

  • Called when a plugin is being removed from a FlutterEngine, which is usually the result of the FlutterEngine being deallocated. This method provides the opportunity to do necessary cleanup.

    You will only receive this method if you registered your plugin instance with the FlutterEngine via -[FlutterPluginRegistry publish:].

    Declaration

    Objective-C

    - (void)detachFromEngineForRegistrar:
        (nonnull NSObject<FlutterPluginRegistrar> *)registrar;

    Swift

    optional func detachFromEngine(for registrar: FlutterPluginRegistrar)

    Parameters

    registrar

    The registrar that was used to publish the plugin.