Flutter:在 web 、android 和 ios 中使用相同的应用程序

Posted

技术标签:

【中文标题】Flutter:在 web 、android 和 ios 中使用相同的应用程序【英文标题】:Flutter: Use same app in web ,android and ios 【发布时间】:2020-05-12 01:07:32 【问题描述】:

我如何构建可以为 web 构建的 Flutter 应用,并且在我们现有的 android/ios 应用上使用相同的应用。

我们已经有现有的应用程序,我们正在寻求向 Flutter 发展。我们可以在 Flutter 中构建我们的应用程序,将其插入现有应用程序并在 Web 中使用相同的应用程序吗?

阿比

【问题讨论】:

【参考方案1】:

启用 Flutter Web

flutter config --enable-web

然后进入现有的 Flutter 项目并运行

flutter create .

您的项目将被配置为网络。

禁用网页:

flutter config --no-enable-web

更多信息here。

【讨论】:

【参考方案2】:

您可以使用条件导入:

import 'some_package_stub.dart'
    if (dart.library.io) 'some_package_io.dart'
    if (dart.library.html) 'some_package_web.dart';

some_package_stub.dart 文件是必需的,以避免在开发和编译时出错。它必须包含一些依赖于运行平台的stub 功能。

例如,如果您使用来自包some_package 的函数getPlatformDependedData 在Web 或Android 下返回不同的数据,那么您应该在some_package_stub.dart 中声明这些函数的原型:

String getPlatformDependedData() 
  throw UnimplementedError('This error will not raised!');

然后在代码中你可以使用isWeb 常量来检查代码是否与网络相关:

if (isWeb) 
  // some web related statements

【讨论】:

【参考方案3】:

根据documentation,您需要在终端中运行这些命令:

    flutter channel stable flutter upgrade flutter config --enable-web 重新启动您的项目 flutter create . 完成

【讨论】:

【参考方案4】:

关于这个问题:我可以构建一个可以在浏览器中运行的 Flutter 应用吗,Flutter for web 最近已经推出。你可以在这里找到更多信息:flutter web

【讨论】:

以上是关于Flutter:在 web 、android 和 ios 中使用相同的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Flutter Web 读取 Firestore 中的数据(适用于 iOS 和 android)

iOS 和 Android Flutter 小部件是不是也适用于 Flutter Web(PWA)

Flutter Web实战项目打造真正跨平台应用(windows,android,ios,linux,macos,web)

Flutter Web:google_sign_in_web:适用于桌面和 iOS。在 Android Chrome 上失败

Flutter Firebase——为 iOS、Android 和 Web 设置不同的部署目标

flutter制作博客展示平台,现已支持 WebmacOS 应用Android 和 iOS