# FlutterPluginRegistrar

Objective-C

    @protocol FlutterPluginRegistrar <NSObject>

Swift

    protocol FlutterPluginRegistrar : NSObjectProtocol

Registration context for a single `FlutterPlugin`, providing a one stop shop for the plugin to access contextual information and register callbacks for various application events.

Registrars are obtained from a `FlutterPluginRegistry` which keeps track of the identity of registered plugins and provides basic support for cross-plugin coordination.

- `-messenger`

  Returns a `FlutterBinaryMessenger` for creating Dart/iOS communication channels to be used by the plugin.

  #### Declaration

  Objective-C

      - (nonnull NSObject<FlutterBinaryMessenger> *)messenger;

  Swift

      func messenger() -> FlutterBinaryMessenger

  #### Return Value

  The messenger.

- `-textures`

  Returns a `FlutterTextureRegistry` for registering textures provided by the plugin.

  #### Declaration

  Objective-C

      - (nonnull NSObject<FlutterTextureRegistry> *)textures;

  Swift

      func textures() -> FlutterTextureRegistry

  #### Return Value

  The texture registry.

- `-registerViewFactory:withId:`

  Registers a `FlutterPlatformViewFactory` for creation of platform views.

  Plugins expose `UIView` for embedding in Flutter apps by registering a view factory.

  #### Declaration

  Objective-C

      - (void)registerViewFactory:
                  (nonnull NSObject<FlutterPlatformViewFactory> *)factory
                           withId:(nonnull NSString *)factoryId;

  Swift

      func register(_ factory: FlutterPlatformViewFactory, withId factoryId: String)

  #### Parameters

  `factory` | The view factory that will be registered.
  `factoryId` | A unique identifier for the factory, the Dart code of the Flutter app can use this identifier to request creation of a `UIView` by the registered factory.

- `-registerViewFactory:withId:gestureRecognizersBlockingPolicy:`

  Registers a `FlutterPlatformViewFactory` for creation of platform views.

  Plugins can expose a `UIView` for embedding in Flutter apps by registering a view factory.

  #### Declaration

  Objective-C

      - (void)registerViewFactory:
                  (nonnull NSObject<FlutterPlatformViewFactory> *)factory
                                    withId:(nonnull NSString *)factoryId
          gestureRecognizersBlockingPolicy:
              (FlutterPlatformViewGestureRecognizersBlockingPolicy)
                  gestureRecognizersBlockingPolicy;

  Swift

      func register(_ factory: FlutterPlatformViewFactory, withId factoryId: String, gestureRecognizersBlockingPolicy: FlutterPlatformViewGestureRecognizersBlockingPolicy)

  #### Parameters

  `factory` | The view factory that will be registered.
  `factoryId` | A unique identifier for the factory, the Dart code of the Flutter app can use this identifier to request creation of a `UIView` by the registered factory.
  `gestureRecognizersBlockingPolicy` | How UIGestureRecognizers on the platform views are blocked.

- `-publish:`

  Publishes a value for external use of the plugin.

  Plugins may publish a single value, such as an instance of the plugin’s main class, for situations where external control or interaction is needed.

  The published value will be available from the `FlutterPluginRegistry`. Repeated calls overwrite any previous publication.

  #### Declaration

  Objective-C

      - (void)publish:(nonnull NSObject *)value;

  Swift

      func publish(_ value: NSObject)

  #### Parameters

  `value` | The value to be published.

- `-addMethodCallDelegate:channel:`

  Registers the plugin as a receiver of incoming method calls from the Dart side on the specified `FlutterMethodChannel`.

  #### Declaration

  Objective-C

      - (void)addMethodCallDelegate:(nonnull NSObject<FlutterPlugin> *)delegate
                            channel:(nonnull FlutterMethodChannel *)channel;

  Swift

      func addMethodCallDelegate(_ delegate: FlutterPlugin, channel: FlutterMethodChannel)

  #### Parameters

  `delegate` | The receiving object, such as the plugin’s main class.
  `channel` | The channel

- `-addApplicationDelegate:`

  Registers the plugin as a receiver of `UIApplicationDelegate` calls.

  #### Declaration

  Objective-C

      - (void)addApplicationDelegate:(nonnull NSObject<FlutterPlugin> *)delegate;

  Swift

      func addApplicationDelegate(_ delegate: FlutterPlugin)

  #### Parameters

  `delegate` | The receiving object, such as the plugin’s main class.

- `-lookupKeyForAsset:`

  Returns the file name for the given asset. The returned file name can be used to access the asset in the application’s main bundle.

  #### Declaration

  Objective-C

      - (nonnull NSString *)lookupKeyForAsset:(nonnull NSString *)asset;

  Swift

      func lookupKey(forAsset asset: String) -> String

  #### Parameters

  `asset` | The name of the asset. The name can be hierarchical.

  #### Return Value

  the file name to be used for lookup in the main bundle.

- `-lookupKeyForAsset:fromPackage:`

  Returns the file name for the given asset which originates from the specified package. The returned file name can be used to access the asset in the application’s main bundle.

  #### Declaration

  Objective-C

      - (nonnull NSString *)lookupKeyForAsset:(nonnull NSString *)asset
                                  fromPackage:(nonnull NSString *)package;

  Swift

      func lookupKey(forAsset asset: String, fromPackage package: String) -> String

  #### Parameters

  `asset` | The name of the asset. The name can be hierarchical.
  `package` | The name of the package from which the asset originates.

  #### Return Value

  the file name to be used for lookup in the main bundle.

© 2023 Flutter. All rights reserved. (Last updated: 2023-03-07)

Generated by jazzy ♪♫ v0.14.3, a Realm project.