【问题标题】:Using Flutter to develop a SDK to be used in Native iOS and Android使用 Flutter 开发 SDK 用于 Native iOS 和 Android
【发布时间】:2019-05-15 15:41:25
【问题描述】:

我们当前的应用程序完全是在 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 活动中? iOS 也是如此

【问题讨论】:

    标签: flutter


    【解决方案1】:

    我可以回答这些关于 Android 的问题。

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

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

    我可以使用 FlutterView 代替 FlutterActivity 吗?

    是的,通过新的 Android 嵌入,您可以使用 FlutterViewView 级别集成 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

    【讨论】:

    • 首先,再次感谢您的回复!这是否意味着甚至无法编译 jar 和/或将其上传到 bintray 以添加到 Android 项目?
    • 我不确定你编译到 jar 是什么意思。 Android 库项目可以构建到 AAR 中。你现在也许可以让它工作。但是你可能会遇到一些困难。 Flutter 团队希望构建 AAR 的过程更加容易。
    • 是的,抱歉 AAR,我从问题中看到,在接下来的几个月中,可以将 Flutter 与 AAR 捆绑在一起(尽管有些人已经解决了这个问题)。我对此感到非常兴奋!
    • 看起来很棒,flutter build aar 现在可在 1.8.3+ 上使用。但是有什么想法为 iOS 构建一个可可豆荚?
    【解决方案2】:

    与 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 上得到更详尽的记录。

    【讨论】:

    • 第三次:谢谢 :D。就像我问过 MattC 一样,这意味着我可以或不能创建要添加到 CocoaPods 中的库?因为(我可能很天真)但它似乎是可能的,虽然它目前有一些障碍和实验性的东西
    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 2019-01-27
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多