initUiKitView static method
- required int id,
- required String viewType,
- required TextDirection layoutDirection,
- dynamic creationParams,
- MessageCodec? creationParamsCodec,
- VoidCallback? onFocus,
Factory method to create a UiKitView
.
The id
parameter is an unused unique identifier generated with
platformViewsRegistry.
The viewType
parameter is the identifier of the iOS view type to be
created, a factory for this view type must have been registered on the
platform side. Platform view factories are typically registered by plugin
code.
The onFocus
parameter is a callback that will be invoked when the UIKit
view asks to get the input focus. If creationParams
is non null then
creationParamsCodec
must not be null.
See: https://docs.flutter.cn/platform-integration/ios/platform-views
Implementation
static Future<UiKitViewController> initUiKitView({
required int id,
required String viewType,
required TextDirection layoutDirection,
dynamic creationParams,
MessageCodec<dynamic>? creationParamsCodec,
VoidCallback? onFocus,
}) async {
assert(creationParams == null || creationParamsCodec != null);
// TODO(amirh): pass layoutDirection once the system channel supports it.
// https://github.com/flutter/flutter/issues/133682
final Map<String, dynamic> args = <String, dynamic>{
'id': id,
'viewType': viewType,
};
if (creationParams != null) {
final ByteData paramsByteData = creationParamsCodec!.encodeMessage(creationParams)!;
args['params'] = Uint8List.view(
paramsByteData.buffer,
0,
paramsByteData.lengthInBytes,
);
}
await SystemChannels.platform_views.invokeMethod<void>('create', args);
if (onFocus != null) {
_instance._focusCallbacks[id] = onFocus;
}
return UiKitViewController._(id, layoutDirection);
}