使用Flutter开发一个SDK可用于本地iOS和Android

3

我们目前的应用程序完全使用Flutter编写,现在我们需要创建一个SDK,将其部分内容合并到另一个本地的iOS和Android应用程序中,就像我们在ZenDesk中所做的一样:https://developer.zendesk.com/embeddables/docs/android/welcome

我的问题是:

  • SDK必须显示全屏幕、进行网络调用并处理隔离,我认为这可以解决问题:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps

  • 是否有一种方法可以创建一个函数,在屏幕上不显示任何视图的情况下,启动隔离并保留该数据,直到第一次显示屏幕为止?

  • 是否可以使用Flutter创建Android Views以包含在Android Activity中? iOS是否也适用?

2个回答

4

关于Android,我可以回答以下问题。

我可以在Android上不使用UI运行Dart/Flutter代码吗?

是的,有一种新的Android嵌入式开发(截至2019年5月仍处于实验阶段),它允许您执行Dart入口点(如main()),而无需附加FlutterView

我可以使用FlutterView代替FlutterActivity吗?

是的,在新的Android嵌入式开发中,您可以使用FlutterView将Flutter集成到

我可以将我的Flutter代码打包成库吗?

目前还不能。目前,Flutter支持从Flutter项目直接链接到Android项目。但是,Flutter尚不支持创建一个包含Android和Flutter代码的AAR。 Flutter团队正在解决此问题。这是一个跟踪问题的票据:https://github.com/flutter/flutter/issues/26099

撰写本文时,您可以在此处找到有关新的实验API的文档: https://github.com/flutter/flutter/wiki/Experimental:-Adding-Flutter-to-Android


首先再次感谢您的回复!这是否意味着即使编译成jar文件并/或上传到Bintray以添加到Android项目也还不可能? - Vanethos
我不确定您所说的编译成jar是什么意思。Android库项目可以构建为AAR。您现在可能已经能够使其正常工作,但可能会遇到一些困难。Flutter团队希望构建AAR的过程更加简单。 - SuperDeclarative
是的,非常抱歉,针对AAR,我从问题中了解到在接下来几个月将有可能将Flutter与AAR捆绑在一起(虽然已经有人解决了这个问题)。我对此感到非常兴奋! - Vanethos
看起来 flutter build aar 现在在 1.8.3+ 版本中可用了。不过有没有想过如何为 iOS 构建 CocoaPods? - rsmets

1

Matt在iOS上的回答基本相同。您可以通过https://api.flutter.dev/objcdoc/Classes/FlutterEngine.html#/c:objc(cs)FlutterEngine(im)runWithEntrypoint调用任意Dart入口点函数:无论它是否具有UI。

在将任何视图附加到FlutterEngine之前,您还可以使用平台通道来来回传递数据。

在Android和iOS上,您都可以将Flutter视图/视图控制器嵌入本机活动/视图控制器中(尽管Android API在此阶段仍处于实验性阶段)。

在未来几个月内,这个过程将在flutter.dev上得到更全面的文档说明。


第三次感谢:D。像我问MattC的那样,这意味着我可以还是不能创建一个库以添加到CocoaPods中?因为(我可能很天真),但似乎是可能的,尽管目前存在一些障碍和实验性内容。 - Vanethos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接