FlutterMethodCodec

Objective-C

@protocol FlutterMethodCodec

Swift

protocol FlutterMethodCodec

A codec for method calls and enveloped results.

Method calls are encoded as binary messages with enough structure that the codec can extract a method name NSString and an arguments NSObject, possibly nil. These data items are used to populate a FlutterMethodCall.

Result envelopes are encoded as binary messages with enough structure that the codec can determine whether the result was successful or an error. In the former case, the codec can extract the result NSObject, possibly nil. In the latter case, the codec can extract an error code NSString, a human-readable NSString error message (possibly nil), and a custom error details NSObject, possibly nil. These data items are used to populate a FlutterError.

  • Provides access to a shared instance this codec.

    Declaration

    Objective-C

    + (nonnull instancetype)sharedInstance;

    Swift

    static func sharedInstance() -> Self

    Return Value

    The shared instance.

  • Encodes the specified method call into binary.

    Declaration

    Objective-C

    - (nonnull NSData *)encodeMethodCall:(nonnull FlutterMethodCall *)methodCall;

    Swift

    func encode(_ methodCall: FlutterMethodCall) -> Data

    Parameters

    methodCall

    The method call. The arguments value must be supported by this codec.

    Return Value

    The binary encoding.

  • Decodes the specified method call from binary.

    Declaration

    Objective-C

    - (nonnull FlutterMethodCall *)decodeMethodCall:(nonnull NSData *)methodCall;

    Swift

    func decodeMethodCall(_ methodCall: Data) -> FlutterMethodCall

    Parameters

    methodCall

    The method call to decode.

    Return Value

    The decoded method call.

  • Encodes the specified successful result into binary.

    Declaration

    Objective-C

    - (nonnull NSData *)encodeSuccessEnvelope:(id _Nullable)result;

    Swift

    func encodeSuccessEnvelope(_ result: Any?) -> Data

    Parameters

    result

    The result. Must be a value supported by this codec.

    Return Value

    The binary encoding.

  • Encodes the specified error result into binary.

    Declaration

    Objective-C

    - (nonnull NSData *)encodeErrorEnvelope:(nonnull FlutterError *)error;

    Swift

    func encodeErrorEnvelope(_ error: FlutterError) -> Data

    Parameters

    error

    The error object. The error details value must be supported by this codec.

    Return Value

    The binary encoding.

  • Deccodes the specified result envelope from binary.

    Declaration

    Objective-C

    - (id _Nullable)decodeEnvelope:(nonnull NSData *)envelope;

    Swift

    func decodeEnvelope(_ envelope: Data) -> Any?

    Parameters

    envelope

    The error object.

    Return Value

    The result value, if the envelope represented a successful result, or a FlutterError instance, if not.