blob: 653f7052bb77af94e772c9f2d10add5e53af76b5 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Foundation/Foundation.h>
#import "FlutterAppLifecycleDelegate.h"
#import "FlutterChannels.h"
#import "FlutterCodecs.h"
#import "FlutterMacros.h"
NS_ASSUME_NONNULL_BEGIN
@protocol FlutterPluginRegistrar;
/**
* Implemented by the platform side 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.
*
* Currently the macOS version of FlutterPlugin has very limited functionality, but is expected to
* expand over time to more closely match the functionality of the iOS FlutterPlugin.
*/
FLUTTER_DARWIN_EXPORT
@protocol FlutterPlugin <NSObject, FlutterAppLifecycleDelegate>
/**
* Creates an instance of the plugin to register with |registrar| using the desired
* FlutterPluginRegistrar methods.
*/
+ (void)registerWithRegistrar:(id<FlutterPluginRegistrar>)registrar;
@optional
/**
* Called when a message is sent from Flutter on a channel that a plugin instance has subscribed
* to via -[FlutterPluginRegistrar addMethodCallDelegate:channel:].
*
* The |result| callback must be called exactly once, with one of:
* - FlutterMethodNotImplemented, if the method call is unknown.
* - A FlutterError, if the method call was understood but there was a
* problem handling it.
* - Any other value (including nil) to indicate success. The value will
* be returned to the Flutter caller, and must be serializable to JSON.
*/
- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result;
NS_ASSUME_NONNULL_END
@end