关于flutter:基于-Linux-的-Flutter-方法通道-Channels

56次阅读

共计 2772 个字符,预计需要花费 7 分钟才能阅读完成。

原文

https://medium.com/flutter-co…

代码

https://github.com/charafau/l…

参考

  • https://flutter.dev/docs/deve…
  • https://engine.chinmaygarde.c…
  • https://engine.chinmaygarde.c…
  • https://marketplace.visualstu…
  • https://marketplace.visualstu…

注释

Flutter Method Channels on Linux

基于 Linux 的 Flutter 办法通道

又见面了!明天我将持续我的 Flutter Linux 之旅,咱们将再次接触 Linux 集成。上次咱们设法为插件开发设置了 Visual Studio Code,明天咱们将进一步钻研 Method Channels。

如果你想创立一个带有办法通道反对的插件,非常简单,只须要应用 flutter create \-t plugin \--platforms=linux <name of your project> 从模板生成一个 Flutter 我的项目。然而,如果你不想创立一个独自的插件,只是增加一些自定义代码到 Flutter Linux 应用程序中呢?我发现这并不简略,所以我想我会写这篇文章,这样你就不必本人解决了。

为了不再迁延上来,让咱们开始吧。

创立办法通道

首先,咱们须要创立编解码器 codecbinary messenger 二进制信使和信道。接下来,咱们将向自定义办法调配一个办法调用,咱们将在下一步中创立这个办法。

为此,让咱们关上我的 my_application.cc。在 linux 文件夹中抄送并导航到我的 my_application_activate 函数。接下来,咱们在插件初始化之后实现下面形容的对象。

在上面的示例中,name_of_our_channel 的名称是咱们从 Dart 代码调用的办法。

回调函数

当初咱们来创立一个回调函数:

非常简单,咱们传递一个通道、methodcall 和一些用户数据。

To check for the channel’s method name we need to use the fl_method_call_get_name function on method_call object. And compare it with strcmp like so:

为了查看通道的办法名,咱们须要在 method_call 对象上应用 fl_method_call_get_name 函数。而后把它和 strcmp 比拟,就像这样:

办法未实现响应

如果传递给 channel 的办法不存在,咱们须要返回未实现的后果来做这件事,咱们须要调用 fl_method_call_respond

错误处理

在开始探讨参数和自定义后果之前,让咱们先疾速理解一下错误处理。

侥幸的是,它与未实现的办法十分类似:

咱们能够看到它简直是雷同的,咱们只是用 fl_method_error_response_new 创立后果,而不是用 fl_method_not_implemented_response_new

获取 Dart 参数

好了,当初是时候从头开始写咱们想写的货色了。让咱们假如咱们想要从 Dart 发送数据到 c + +,为了做到这一点,咱们只须要从 Dart 端发送一个地图,然而如何获取呢?

为此,咱们须要调用 fl_method_call_get_args(FlMethodCall),它返回一个指向 FlValue 的指针。

接下来咱们查看返回的值是否是正确的类型:

在下面的例子中,咱们查找字符串,然而还有其余的,比方 int、float、bool、map。对于残缺的清单测验 Flutter Engine Documentation

类型查看也是一样,查看枚举的整个列表到 Documentation

返回一些值

咱们简直实现了,咱们设法解决了未实现的办法、谬误和从办法中获取参数。剩下的是返回 Dart 的值。

对咱们来说侥幸的是,这与咱们曾经实现的工作十分类似,咱们只须要创立 FlMethodResponse 并将 FlValue 放入其中。上面是一个例子:

像后面一样,这里有更多价值发明函数的文档链接 link to documentation for more value creation function

代码实现 + 调试

我想我应该给你一些处分,因为你来到这里,所以我决定在 Visual Studio Code 中编写代码实现和调试的设置程序。

在开始之前,必须装置 C++ 和 Cmake 插件。

首先让咱们设置代码实现。创立名为 c_cpp_properties.json 的文件。Json 在外面。在你的我的项目的根目录下放一个 .vscode 文件夹,而后把这个配置文件放进去:

查看编译器门路 (Flutter 应用 Clang) 并依据须要调整 c/c + + 规范。

为了设置调试,咱们须要在 launch.json 中创立启动配置 .vscode 文件夹。让咱们来看一下配置:

非常简单,然而须要更改二进制名称。此外,要晓得,使它的工作,你须要建设您的 Flutter 我的项目与 flutter run

本文完结

谢谢你的浏览,心愿你会发现它很有用。

编程欢快!

残缺的例子能够在这里找到。

https://github.com/charafau/l…


© 猫哥

  • https://ducafecat.tech/
  • https://github.com/ducafecat
  • 微信群 ducafecat
  • b 站 https://space.bilibili.com/40…

往期

开源

GetX Quick Start

https://github.com/ducafecat/…

新闻客户端

https://github.com/ducafecat/…

strapi 手册译文

https://getstrapi.cn

微信探讨群 ducafecat

系列汇合

译文

https://ducafecat.tech/catego…

开源我的项目

https://ducafecat.tech/catego…

Dart 编程语言根底

https://space.bilibili.com/40…

Flutter 零根底入门

https://space.bilibili.com/40…

Flutter 实战从零开始 新闻客户端

https://space.bilibili.com/40…

Flutter 组件开发

https://space.bilibili.com/40…

Flutter Bloc

https://space.bilibili.com/40…

Flutter Getx4

https://space.bilibili.com/40…

Docker Yapi

https://space.bilibili.com/40…

正文完
 0