openPopup static method
Opens a new popup window at the url page.
Implementation
static Future<WindowHandleImpl> openPopup(
String url, {
Map<String, dynamic> parameters = const {},
}) async {
Log.debug('openPopup($url, $parameters)', 'WebUtils');
final String id = parameters['id'] = const Uuid().v4();
final StringBuffer arguments = StringBuffer();
if (parameters.isNotEmpty) {
arguments.write('?');
arguments.write(
parameters.entries.map((e) => '${e.key}=${e.value}').join('&'),
);
}
final WindowHandleImpl handle = WindowHandleImpl(
'$url${arguments.toString()}',
id: id,
);
try {
final int screenW = web.window.screen.width;
final int screenH = web.window.screen.height;
final int sizeW = 500;
final int sizeH = 800;
handle._window = web.window.open(
'$url${arguments.toString()}',
handle.id,
'popup=1,width=$sizeW,height=$sizeH,left=${(screenW / 2 - sizeW / 2).toInt()},top=${(screenH / 2 - sizeH / 2).toInt()}',
);
Log.debug('openPopup() -> isOpen: ${handle.isOpen}', 'WebUtils');
} catch (e) {
Log.debug('openPopup() -> failed due to $e', 'WebUtils');
}
return handle;
}