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 上失败