很多情景需要使用 package:flutter_web_ui/ui.dart
或者 dart:ui
,比如显示一个网页:
import 'package:flutter_web_ui/ui.dart' as ui;
// 或者 import 'dart:ui' as ui;
ui.platformViewRegistry.registerViewFactory(
'maphtml',
(int viewId) => IFrameElement()
..allowFullscreen=true
..height = '360'
..src = 'https://hornhuang.github.io'+_params
..style.border = 'none');
运行一下,很不幸收到一朵大红花:
原因是 'dart:ui'
这个库是 web-only
的,也就是说我们只能在 flutter_web
上用它 ?但是如果在 iOS/android
上也想用怎么办?挑战一下:
dart
文件:FakeUi.dart
// ignore: camel_case_types
class platformViewRegistry {
static registerViewFactory(String viewId, dynamic cb) {}
}
dart
文件:RealUi.dart
import 'dart:ui' as ui;
// ignore: camel_case_types
class platformViewRegistry {
static registerViewFactory(String viewId, dynamic cb) {
// ignore:undefined_prefixed_name
ui.platformViewRegistry.registerViewFactory(viewId, cb);
}
}
'dart:ui'
里的内容时,直接通过 FakeUi.dart
就可以啦import 'FakeUi.dart' if (dart.library.html) 'RealUi.dart' as ui;
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有