首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在颤振联邦插件上调用特定的平台功能

在颤振联邦插件上调用特定的平台功能
EN

Stack Overflow用户
提问于 2022-01-18 09:16:32
回答 1查看 225关注 0票数 0

我想知道在联邦插件上拥有特定平台功能的最佳方法是什么,以及如何从主应用程序调用它。

例如,让我们看看这个联邦插件代码:

定义函数的

  • 平台接口:

代码语言:javascript
复制
abstract class FlutterGetPlatformStringPlatform extends PlatformInterface {
...
  Future<String> getPlatformString() {
    throw UnimplementedError();
  }
...
}

implementation:

代码语言:javascript
复制
abstract class AndroidGetPlatformString extends FlutterGetPlatformStringPlatform {
...
  @override
  Future<String> getPlatformString() {
    // Some native method
  }
...
}

implementation:

代码语言:javascript
复制
abstract class WebGetPlatformString extends FlutterGetPlatformStringPlatform {
...
  @override
  Future<String> getPlatformString() {
    // Some native method
  }

  String specificNativeVariable = SpecificNativeVariable();
  
  void specificNativeFunction() {
    // More stuff
  }

...
}

所以这里的问题是在我的应用程序上,我在我的pubspec.yaml上导入插件,然后在代码import 'package:flutter_platform_string_interface/flutter_platform_string_interface.dart';上导入插件。那么,我如何只能将网络称为specificNativeFunction,或者如何将网络设置为SpecificNativeVariable

我应该导入flutter_platform_string_web,或者如何实例化平台接口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-24 00:45:14

有几种方法可以做到这一点:

如您所示,在插件客户机导入flutter_platform_string_web.

  • Use时,模式演示了in the in_app_purchase plugin,插件客户机导入了flutter_platform_string_web。这具有客户端不需要导入整个平台实现的优点,因此不太可能认为应该直接调用其他平台实现方法(这几乎总是一个坏主意)。

  • 将该方法作为面向应用的包和文档的一部分,而该包和文档仅在web上实现。在创建联邦插件之前,平台特定的方法就是这样工作的,但现在这并不是一种鼓励的做法。它不能很好地扩展,因为您添加了更多具有自己特定方法的平台,不允许使用特定于平台的类型,例如

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70753032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档