在鸿蒙Flutter开发中,如果涉及到使用原生功能,就要使用插件。使用插件有两种方式,一种是自己编写原生ArkTS代码,在Dart侧调用。另外一种是使用第三方代码。
该方案可以使用 PlatformView 或者 MethodChannel 调用。
-
PlatformView 即为在 Flutter 侧创建一个 View,然后在 Native 侧渲染。PlatformView 封装了底层的 View。
-
MethodChannel 即通过 MethodClannel 调用原生Native 方法。
具体操作可以分别参考文章 鸿蒙 Flutter 开发中集成 Webview 和 使用 ArkTs 开发 Flutter 鸿蒙平台插件
1.在pub.flutter.dev/github/gitee/ophm查找使用的插件,如果插件已经适配鸿蒙,则可以像其他Flutter插件一样正常使用。
2.如果插件尚未适配鸿蒙,则需要寻找适配的插件库。配置方法如下
3.如果使用的第三方插件,其底层以的库没有适配鸿蒙,则需要通过overrider配置其鸿蒙化的替代插件,否则会在运行时报错。如下面所示:
dependencies:
path_provider: ^2.1.0
dependency_overrides:
# ohos
path_provider:
git:
url: "https://gitcode.com/openharmony-sig/flutter_packages.git"
path: "packages/path_provider/path_provider"
这里需要注意的时,如果不存在依赖冲突,dependency_overrides 可能不生效。也就是说,查看 pubspec.lock 文件,发现依赖的插件库,不存在 **_ohos 库,则说明 overrides不生效,此时使用以下方式,修改 pubspec_overrides.yaml 文件,手动添加文件。
如果 overrides 不生效, 打开 pubspec_overrides.yaml,添加以下内容,再次运行 pub get, 发现 pubspec.lock 成功添加了 **_ohos 库。
dependency_overrides:
# ohos
path_provider:
git:
url: "https://gitcode.com/openharmony-sig/flutter_packages.git"
path: "packages/path_provider/path_provider"
另外,如果没有找到使用的鸿蒙化插件,则可以考虑自行编写垮端调用代码,或者编写新的插件库,作为原插件库的特定平台实现。