gpt4 book ai didi

ios - 如何在 Flutter 应用程序中显示原生 iOS View ?

转载 作者:行者123 更新时间:2023-12-03 04:02:51 30 4
gpt4 key购买 nike

我目前正在做一个项目,我需要在其中实现一个为 Android 和 iOS 编写的图形框架;但是,我正在使用 Flutter/Dart 编写应用程序,到目前为止,我找不到任何方法在 Flutter 应用程序中显示原生 iOS View 。我找到了一个为 android 编写的模块,声称可以做到这一点 ( blog post ),我很好奇是否有人知道可以为 iOS 实现此目的的任何模块或技术。

我知道 Flutter 有 ChannelMethod 特性,但这不是一个解决方案——至少从我的理解来看,ChannelMethods 可以传递特定于平台的消息,但这并不能帮助我在 Flutter 应用程序中显示特定于平台的插件。

我还想到在 Flutter 中硬编码一个等效的图形界面,然后使用 ChannelMethods 传递所需的数据,但这并不理想,因为似乎并非我需要的所有插件数据都可以轻松获得。我真的在寻找一种以某种方式在 Flutter 中显示 UIView 的方法。

有什么方法可以在 Flutter 应用程序中显示原生 iOS View 吗?或者,有什么方法可以从 Flutter 应用程序转到 iOS viewController 吗?

最佳答案

您可以使用 Flutter Platform Views在 Flutter 应用程序中显示平台原生小部件。

在文档中给出的示例中,FLNativeViewFactory 创建平台 View ,并提供对 UIView 的引用。可以使用提供的 UIView 引用添加 iOS View 。

使用 swift

class FLNativeView: NSObject, FlutterPlatformView {
init(
frame: CGRect,
viewIdentifier viewId: Int64,
arguments args: Any?,
binaryMessenger messenger: FlutterBinaryMessenger?
){
_view = UIView()
super.init()
// iOS views can be added here
}
}

使用 objective-c

@implementation FLNativeView {
UIView *_view;
}
- (instancetype)initWithFrame:(CGRect)frame
viewIdentifier:(int64_t)viewId
arguments:(id _Nullable)args
binaryMessenger:(NSObject<FlutterBinaryMessenger>*)messenger {
if (self = [super init]) {
_view = [[UIView alloc] init];
}
// iOS views can be added here
return self;
}

@end

关于ios - 如何在 Flutter 应用程序中显示原生 iOS View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53547176/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com