使用Flutter开发可在本机iOS和Android中使用的SDK

时间:2019-05-15 15:41:26

标签: flutter

我们当前的应用程序完全是用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

  • 是否有一种方法可以创建一个功能,而无需在屏幕上显示任何视图,就可以启动隔离并保留该数据,直到首次显示该屏幕?

  • 是否可以创建带有抖动的Android视图以包含在Android Activity中?和iOS一样

2 个答案:

答案 0 :(得分:2)

我可以针对Android回答这些问题。

我可以在没有UI的情况下在Android上运行Dart / Flutter代码吗?

是的,作品中嵌入了一个新的Android(截至2019年5月仍处于试验阶段),它使您可以执行Dart入口点,例如main(),而无需附加FlutterView

我可以使用FlutterView代替FlutterActivity吗?

是的,通过新的Android嵌入,您可以使用ViewFlutterView级别集成Flutter。还有一个FlutterFragment,可以为您带来FlutterView的大部分好处,而且还可以转发许多您自己必须做的重要呼叫。

我可以将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

答案 1 :(得分:1)

与iOS上的Matt's大致相同的答案。您可以通过https://api.flutter.dev/objcdoc/Classes/FlutterEngine.html#/c:objc(cs)FlutterEngine(im)runWithEntrypoint调用任意的dart入口点函数:是否具有UI。

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

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

在接下来的几个月中,将在flutter.dev上更彻底地记录此过程。