问题标签 [flutter-method-channel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
405 浏览

java - 使用方法通道将 Uint8List 从 Flutter 发送到 Android[Java] 时遇到问题

我在 Flutter 上有一个方法通道设置,可以将 Uint8List 发送到 Android[Java]。Android 正在接收数据,但看起来字节在 127 处包装。

例如:如果我从颤振中发送 [254, 100, 32],它在 Android 中显示为 [-2, 100, 32]。

基本上,列表中超过 127 的任何值都将转换为负值。

这是我在 Fluter 端设置方法通道的方式:

这就是我在 Android 端接收它的方式

问题:如何阻止 Uint8List 中超过 127 的值在 Java 中转换为负值?

如果您需要查看我的更多代码,请告诉我。

0 投票
0 回答
663 浏览

android - Android 上的 Flutter:我可以在应用处于后台时调用自定义 MethodChannel 吗?

我创建了一个自定义 MethodChannel“com.example.app/widget”,它在收到 Firebase 云消息后更新 Android 上的主屏幕小部件。在应用程序处于前台时调用它时运行良好,但我也想在应用程序关闭或在后台接收到 Firebase 云消息时调用它。

当应用程序在后台时,它会给我一个 MissingPluginException 错误,如下所示:

... 等等。还有很多关于 MissingPluginException 错误的其他线程涉及将插件添加到注册表,但我无法找到任何解决不属于另一个插件的自定义 MethodChannels 的线程。是否可以将我的自定义 MethodChannel 添加到注册表或执行类似的操作以使 Dart 代码能够在后台从该通道调用方法?

我已经尝试使用 workmanager 和 android_alarm_manager 并且它们本身似乎运行良好,但是使用我的自定义频道它们仍然无法通过此块。

我的 MainActivity.kt 中包含方法详细信息:

然后在 main.dart 我打电话:

我已经有了 Flutter Android Embedding V2(Flutter 版本 >= 1.12)。

任何帮助是极大的赞赏。

0 投票
1 回答
117 浏览

android - Flutter MethodCall 以 kotlin 方式进行非零检查

我尝试使用 kotlin 制作 MethodCall 类型判断函数,但它为我返回类型不匹配,我该如何解决?

0 投票
1 回答
237 浏览

flutter - 单独的 web 和移动颤振

我想在我的颤振项目中将网络和移动设备分开。我使用下面的代码,但不能在网络应用程序中工作(当我用这种模式在 chrome 中测试时)

在网络应用程序中,我的按钮不起作用,而在移动设备中则起作用。任何想法或提示?!

0 投票
1 回答
388 浏览

android - 在通道颤动/平台视图上找不到方法创建的实现

我正在将颤振模块添加到 Android 本机应用程序中,该模块包含谷歌地图,当颤振模块初始化时,它会路由到颤振页面但地图不显示。当我调试时,我得到了这个异常:

MissingPluginException:找不到通道颤振/平台视图上的方法创建的实现

这是颤振代码

0 投票
1 回答
155 浏览

android - 如何在自定义 Android Activity 或 Fragment 中使用 Flutter 页面?

我正在开发一个项目,其中在 Android 中原生使用旧库。因此,我不得不在 Kotlin 中工作并使用 xml 文件来查看屏幕上的一些元素。但是,我质疑自己是否有办法在 Android 中创建自定义活动/片段并调用颤振屏幕文件,我可以在其中使用应用程序中的所有颤振小部件。我目前正在使用方法通道在 Kotlin 和 Dart 之间进行通信,这就是我提出这个问题的原因。很感谢任何形式的帮助!

0 投票
1 回答
274 浏览

flutter - 如何将 flutter_bloc 与方法通道集成?

我已经开始使用flutter_bloc包而不是 redux 来尝试它,但我不完全确定在从本机(Android/iOS)接收内容时如何调用颤振 bloc 事件。使用 redux 更容易,因为在我的main.dart文件的父MyApp小部件中,我将 redux 存储传递给我创建的自定义类,并从所述类(称为MethodChannelHandler)分派方法。

主要飞镖:

方法ChannelHandler.dart:

注意:我在编程词汇方面无能,所以如果可能的话,请给我一小段示例代码,就像我拥有的​​那样,或者将我链接到我可以参考的一些GitHub 存储库,而不是给我一段文本'我可能不会明白。

0 投票
1 回答
178 浏览

swift - Flutter 中的同步平台代码执行

我正在调用一个本地 SDK,它会关闭并执行一些 API 调用,这显然是有时间限制的工作。对于这项工作的 90%,我使用双向回调和方法通道调用,以便 Dart 可以调用 Swift,然后 Swift 可以在完成后调用 Dart。

我遇到的问题是当我同步等待 API 响应(或超时)时。

我进行了一些测试,因为我原本打算推迟发送回FlutterResultSwift 回调,但这严重减慢了 UI,因为我相信所有平台调用都是在 UI 线程上进行的。我模拟了 10 秒的响应时间,应用程序将完全挂起几秒钟,然后再次响应,如果我向其中一些请求发送垃圾邮件,应用程序将挂起 10 秒以上。

我对运行同步平台代码的最佳方式有点困惑,因为我认为不能从隔离中调用平台代码。

我想要

  • 获取用户详细信息
  • 用户按下按钮
  • 等待时显示动画
  • 得到回应并继续前进。

等待时的显示动画当然是卡顿的部分。我不完全确定为什么要么因为运行通用 CPU 工作,无论其本机或飞镖肯定不应该冻结渲染引擎?

无论如何,我唯一能想到的是:

  • Dart 调用平台方法 A
  • 将标志设置AwaitingMethodA为真
  • 立即返回 FlutterResult 但在 Swift 中设置回调
  • while (AwaitingMethodA)....
  • 当 Swift 中的回调命中时,跳转到 UI 线程并将消息发送回 Dart 说完成,这会将 AwaitingMethodA 设置为 false
  • Dart 代码继续....

^ 如果需要,我可以为上述设置超时计时器以中断循环。

这种方法有什么问题吗,或者对于同步的、有时限的平台工作是否有更好的约定?

0 投票
0 回答
321 浏览

ios - Flutter Image Picker with iOS Method Channel

I am looking to create a custom image picker in my Flutter application using Method Channels. I have been looking for a while and there really is no great documentation on the subject.

The Flutter docs reference getting the battery level, but it is not much help to be honest. I would like to avoid using third-party packages because there are none out there with high reviews and that support multi-image selection.

Requirements:

  • Display your image gallery in-app (photo below)
  • Select multiple images
  • Display the chosen images full-size on another screen
  • Be in a format I can save to my cloud datastore

Current implementation

I am able to get an image preview of my camera gallery in my flutter application using Method Channels by using the swift code below:

dataForGalleryItem:

Using the imageManager.requestImage() I am able to get the image data and send it back to the Flutter client.

On the Flutter side I am taking that data and using Image.memory() on the byte list to display the preview image pictured in the screenshot above.

Issues

  • Is this an acceptable Swift implementation for getting camera roll images?

  • How on earth do I get the local file path from the Swift code to be able to use Image.file() on the Flutter client?

The URL keeps coming back as NULL.

I need to get the file path to be able to save the image to my Google Cloud Bucket.

0 投票
1 回答
358 浏览

ios - 如何将文件从缓存移动/复制到用户的文档目录?[迅捷,颤振]

我已经在 Flutter 中下载了一个文件并使用该path_provider包,将它放在我从中获取的目录中getTemporaryDirectory()。然后使用MethodChannels调用一个方法,我调用的是下面的方法:

我在控制台中收到以下错误:

我已经阅读了文档并在网上搜索了大约 2 天,但我找不到解决方案。

我想要达到的目标

将文件移动到用户的文件管理器中,以便他们可以从“文件”应用程序查看、修改、共享等文件

我也试过在物理设备上运行它,但没有运气

我试过的:

  • 删除try fileManager.createDirectory()if 语句。以下是删除此日志的日志: