分享
在 MPFlutter 里使用 Packages
输入“/”快速插入内容
在 MPFlutter 里使用 Packages
MPFlutter 支持开发者使用 Flutter 生态中已有的 Packages。
可用的 Package
•
完全不依赖 Platform
Channel
的 Package,可以直接引入使用。
例如以下 Package:
◦
Dio
◦
GetX
◦
Provider
◦
json_serializable
◦
fl_chart
◦
......
•
依赖 Flutter For Web 的 Package,需要 MPFlutter 官方完成对应的小程序 API ->
JS
适配才可以使用。
以下 Package 已由 MPFlutter 官方完成适配,你可以直接引入使用:
◦
http
◦
shared_preferences
不可用的 Package
•
依赖 Platform
Channel
的 Package,并且高度依赖设备实现。
例如:
◦
geolocator
◦
url_launcher
◦
image_picker
◦
cached_network_image
◦
path_provider
•
依赖 PlatformView 实现的 Package,也是不可用的。
例如:
◦
google_maps_flutter
◦
flutter_video_view
◦
webview_flutter
针对这些需求,MPFlutter 官方后续会推出方案,支持对应的功能。
你也可以通过阅读微信小程序文档,了解对应的 API 是否可覆盖你的场景。
你可以通过《
微信小程序 API 封装库
》文档,学习如何使用 mpflutter_wechat_api 库,便利地使用 Dart 调用微信小程序 API。
忽略不可用的 Package
不可用的 Package 可能导致小程序无法启动,最常见的表现是冷启动白屏,即使你不在 dart 中调用这些不兼容包,也可能导致白屏。
解决方案如下:
1.
在
pubspec.yaml
中移除未确定兼容的 Package 解决问题。
2.
另外也可以通过声明某些 Package 为不兼容,解决问题。
不兼容的 Package 一般可以在
.dart_tool/dartpad/web_plugin_registrant.dart
中找到。
在 scripts/build_wechat.dart 中,使用以下代码声明就可以实现在 MPFlutter 下不打包指定 Package。
代码块
Dart
build_tools.addNonCompatiblesPackage('pkgname');