buildWidget method
Widget
buildWidget({
- required BuildContext context,
- required SuperWebViewController controller,
- String? initialUrl,
- Map<
String, dynamic> ? creationParams, - void onPlatformViewCreated(
- int id
override
Implementation
@override
Widget buildWidget({
required BuildContext context,
required SuperWebViewController controller,
String? initialUrl,
Map<String, dynamic>? creationParams,
void Function(int id)? onPlatformViewCreated,
}) {
const String viewType = 'super_webview_view';
final Map<String, dynamic> params = <String, dynamic>{
'initialUrl': initialUrl,
...?creationParams,
};
if (defaultTargetPlatform == TargetPlatform.android) {
return PlatformViewLink(
viewType: viewType,
surfaceFactory: (context, controller) {
return AndroidViewSurface(
controller: controller as AndroidViewController,
gestureRecognizers: const <Factory<OneSequenceGestureRecognizer>>{},
hitTestBehavior: PlatformViewHitTestBehavior.opaque,
);
},
onCreatePlatformView: (platformParams) {
final androidController = PlatformViewsService.initSurfaceAndroidView(
id: platformParams.id,
viewType: viewType,
layoutDirection: TextDirection.ltr,
creationParams: params,
creationParamsCodec: const StandardMessageCodec(),
onFocus: () => platformParams.onFocusChanged(true),
);
androidController.addOnPlatformViewCreatedListener((id) {
platformParams.onPlatformViewCreated(id);
onPlatformViewCreated?.call(id);
});
return androidController..create();
},
);
} else if (defaultTargetPlatform == TargetPlatform.iOS) {
return UiKitView(
viewType: viewType,
layoutDirection: TextDirection.ltr,
creationParams: params,
creationParamsCodec: const StandardMessageCodec(),
onPlatformViewCreated: (id) => onPlatformViewCreated?.call(id),
);
}
return Text('$defaultTargetPlatform is not yet supported');
}