问题标签 [flutter-platform-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 投票
0 回答
46 浏览

flutter - 如何注册自己的 Flutter 插件?

我在自己的应用程序中注册插件时遇到问题。

这里解释说,您需要在您的应用程序中注册您的插件,pubspec.yaml以便您的插件由生成的类自动添加。源代码也解释了这一点。

但这不起作用,添加这样的插件会破坏我的应用程序。而且也不能添加多个插件。这似乎是插件包的文档,而不是实现自己插件的应用程序。

我的问题是,我是否需要在某处注册我的插件以便将其添加到生成的类中,还是需要以编程方式注册它FlutterEngine.plugins.add()

这样做的正确方法是什么?

0 投票
0 回答
48 浏览

ios - 如何在 iOS 扩展中设置 Flutter 平台频道(播客上传扩展)

我想在 iOS 扩展(广播上传扩展)中设置 Flutter 平台通道。这甚至可能吗?

在主应用程序中,AppDelegate我会简单地使用这样的东西:

FlutterMethodChannel初始化binaryMessenger时需要 a 类型FlutterBinaryMessenger。我在哪里可以获得可以在 iOS 扩展中使用的此类参考?我不能只访问主要目标AppDelegate并简单地获取对应用程序的引用FlutterViewController,因为扩展程序存在于它们自己的二进制文件中。关于如何实现这一点的任何想法?

0 投票
0 回答
42 浏览

ios - 在(非插件)Flutter 应用程序中执行 IOS 平台通道代码的正确方法?

当使用平台通道在 Flutter 应用程序中编写特定于平台的 IOS 代码时(但不编写插件)...

将所有代码专门放在 AppDelegate 中是标准做法吗?

如果它是一个插件,你会创建一个类并让它扩展 FlutterPlugin ......但我没有这样做。

我看到的示例只是将所有内容都放在 AppDelegate 类中,并让它扩展 FlutterAppDelegate。

您可以将 MethodChannel 通信放在 AppDelegate 之外的其他地方,例如创建一个单独的(非 ui)类吗?

如果是,那么如何?

0 投票
1 回答
71 浏览

ios - ''列表' 不是 IOS Flutter 平台频道上的 'Uint8List?' 类型的子类型

注意:请不要根据“最小可重现示例所需的更多代码”做出下意识的关闭建议,尤其是在您不理解该问题的情况下。如果你按照我的逻辑,我想你会发现不需要更多的代码。

我正在做一些特定于平台的 Flutter 代码,其中我有一个平台方法“stopRec”(停止录制),它等待来自本机主机的字节数组。

在 Dart 方面,它看起来像这样:

如您所见,它期望得到一个字节数组(Dart Uint8List)。

我已经编写了 Android 代码并且它可以工作——它测试得很好,记录的字节可以通过并正确播放。

这是 Android (Java) 代码的样子:

我希望您理解为什么在这个问题中还不需要“更多代码”。

但是,在 IOS 端继续,调用平台方法时出现以下错误:

[VERBOSE-2:ui_dart_state.cc(209)] 未处理的异常:类型 'List<Object?>' 不是类型 'Uint8List?' 的子类型 在类型转换中

发生错误的 Dart 行是:

所以发生的事情是它没有得到它期望从 IOS 发回的 Dart Uint8List。

IOS 代码如下所示:

我已经测试了与未连接到 Flutter 的独立 IOS 应用程序相同的 IOS 实现代码,因此我知道在 stopRec() 方法结束时,dartCompatibleAudioBytes 变量确实包含正确播放的预期数据。

我希望你能明白为什么“更多代码”仍然没有必要。

  • Dart 代码有效
  • Android 代码有效
  • Dart 代码与 Android 代码协同工作
  • IOS代码有效
  • IOS 代码不能与 Dart 代码一起使用

使用我所展示的内容,任何人都可以立即看到为什么预期的数据类型没有通过方法通道返回?

0 投票
1 回答
53 浏览

android - 如何在我的颤振应用程序中创建 android 固定的聊天快捷方式?

我正在为我的项目编写一个聊天应用程序。我想包含类似 WhatsApp 的功能,我们可以通过单击添加快捷方式来创建聊天的主屏幕快捷方式。

没有插件,所以我想到了使用 PlatformChannel 并使用它调用本机 Kotlin 代码。但是我不知道如何在 Kotlin 中编写本机 android,所以我搜索了相同的代码。

我找到了官方文档,但是他们的例子不能单独工作,因为它假设他们已经是一个 id 为“shortcut-id”的快捷方式我在其他地方查找了旧问题,YouTube,许多博客网站,但没有一个关于如何创建新的固定快捷方式的明确解决方案或代码,以及一些已过时或在 Java 中已被弃用的方法或代码,它们不是 Kotlin 解决方案。

无法自行运行的官方文档代码

因此,如果您能抽出宝贵的时间并给我一个工作的方式或我可能得到答案的地方,那将是非常有帮助的。

0 投票
0 回答
21 浏览

android - 壁纸不会在 android/kotlin 上调整为设备大小

我正在使用 Flutter 并在 Kotlin 中编写特定代码来将图像设置为墙纸,我遇到的问题是,当我将图像设置为墙纸时,我的屏幕设备不适合。

这就是我试图获取设备的屏幕大小并调整位图大小以设置为墙纸的方式,调试控制台没有显示任何错误,但我所说的图像似乎没有调整大小。

例子:

这是应用墙纸时的行为示例

原始图像与壁纸

我不知道我是否在代码上做错了,或者这背后的逻辑不好。

0 投票
0 回答
33 浏览

flutter - 带参数的 Flutter 插件实例

我正在尝试制作一个用于身份验证的插件。对于不同平台的不同现有包,它将充当“包装器”(但每个插件都有附加功能)。

我的意思是附加功能

  • Web 实现已经有状态管理
  • Android实现是AppAuth,所以这里需要添加自己的状态管理

我正在尝试使用这种PlatformInterface方式,但我找不到任何指南如何使用构造函数参数使其可实例化。

假设我有这个代码:

这可行,但在我的应用程序中,我想这样做:

如果我只是尝试添加这样的参数:

_setPlatform()因为这是静态方法,所以我无法在方法中传递它们。

KeycloakAuthAppAuthextends KeycloakAuth,所以我需要来回传递这些参数,比如 instantiate KeycloakAuth,这KeycloakAuthAppAuth需要通过super()...

对此有什么建议吗?

我知道我可以initialize({String keycloakUrl, String clientId})使用我的参数创建一个方法,但我仍然想知道是否可以使用构造函数创建它。

0 投票
0 回答
18 浏览

flutter - 后台连续下载漫画章节 - Flutter

所以这就是我想要的。我有一个漫画应用程序,我可以在其中阅读我的东西。我想下载章节离线阅读。

我想一一下载每一章,因为我不想执行大量的 api 调用来一次获取每章中的图像 url,这样我就不会达到 api 调用限制。当一章完成下载后,下一章首先获取图像 url,然后下载它们,依此类推。而这一切都必须在后台发生。

我尝试Flutter_Downloader了插件,但我无法实现这种行为,因为我需要获取所有章节图像并将它们直接排入队列,这根本无效,因为图像 URL 也会在几分钟后过期。我尝试了 workmanager,但我无法在后台立即执行任务。

什么是最好的解决方案,请帮助。谢谢你。

0 投票
1 回答
34 浏览

flutter - 如何将依赖项添加到 Flutter 插件

我正在尝试实现新的 Flutter 插件来包装我的原生 SDK 并直接使用我的原生 SDK 并返回结果。

我已经通过使用 maven 添加我的库并在我的 Android 模块中使用它来完成 Android 部分,但现在我被困在 iOS 部分,因为插件代码只是一个将在最后使用的 pod,所以我如何添加我的通过 Swift 包管理器依赖插件 pod 并使用它,而不是去添加供应商框架。有没有办法做到这一点?

0 投票
0 回答
20 浏览

swift - 如何在 Flutter 中调整 UiKitView 的大小?

我正在尝试将平台视图集成到我的 Flutter 应用程序中。我找不到在颤振应用程序中调整 UiKitView 大小的方法。我试图用 ConstrainedBox 约束视图,但平台视图忽略了它。我还尝试在本机代码中将 UIView 高度设置为屏幕的一半,但它也不起作用。甚至可以将平台集成为屏幕的一部分吗?任何反馈表示赞赏