Code前端首页关于Code前端联系我们

Flutter 设计并封装为桌面程序

terry 2年前 (2023-09-23) 阅读数 66 #移动小程序

第一步:搭建环境

  • flutter环境略
  • golang切换到语言开发环境❙ver‷flutter桌面脚手架提供的工具

首先阅读Go语言环境准备

  1. 访问Go语言中文网站,下载相应的包。不要忘记下载最新版本。本文以Windows为例,下载go1。 12.5.windows-amd64.msi。如果本地安装了旧版本的 Go,请务必更新到最新
  2. 指定安装目录,点击安装
  3. 配置环境变量。安装完成后,将目录bin添加到安装目录下的系统环境变量Path中,即go.exePath添加到环境变量中的路径。
  4. 检查环境。打开cmd并输入go env。如果成功打印Go路径,则Go完成。

注意:如果你还有兴趣学习Go开发,还需要配置环境变量GOPATH

下载并安装按住光标库。这是Go语言库。在cmd提示符下运行以下命令来安装它。如果网络不稳定,可能需要一些时间。首先请确保Flutter环境可以正常访问

flutter create myapp
复制代码

cd到flutter项目路径,即myapp。我们以创建的测试项目为例,进入myapp下的文件夹lib,删除main.dart由于flutter桌面项目的特殊要求,必须为项目文件配置两个输入端口。创建文件 main.dartmain_desktop.dart。请注意,文件名是固定的,不能使用。请随意编辑它。然后创建一个文件 app.dart 作为我们测试应用程序的特定代码。没有命名要求。

main.dart代码如下。这是移动应用程序必须使用的入口代码。

import 'package:flutter/material.dart';
import 'app.dart';

void main() => runApp(MyApp());
复制代码

main_desktop.dart内容如下。这是桌面上所需的输入代码。

import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart' show debugDefaultTargetPlatformOverride;
import 'app.dart';

void main() {
  debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
  runApp(MyApp());
}
复制代码

app.dart内容如下。实际的UI代码是显示的 Hello World!

import 'package:flutter/material.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
      return Scaffold(appBar: AppBar(title: Text("Demo")),
        body: Center(child: Text('Hello World!'),),
      );
  }
}
复制代码

第3步:初始化为桌面项目

Flutter项目根路径下有一个android目录和一个ios目录,但是没有桌面编译目录。这一步是使用库自动生成桌面 hover 最后的项目编译目录

确保当前命令行环境在路径下 myapp

  • myapp ‷

    ,否则cd over 然后执行以下命令

    hover init github.com/my-organization/myapp
    复制代码

    如果你有匹配的github项目路径,请将其更改为你自己的,否则就按照上面写一个即可。该示例是一个测试项目,尚未上传到GitHub。我刚刚在这里写了一篇。注意这里的坑。这个GitHub路径一定要写,不然无法正常打包。这可能是脚手架工具的BUG

    第4步:运行并打包

    如果您需要即时运行重新加载应用程序,请在当前命令行中运行按住光标注意此时你将在线下载一些依赖项,这将需要一些时间。这也取决于你的个性。根据网络情况,您很可能会被阻止。如果您在后台使用代理Socks5,您将收到远程服务器将关闭连接的错误。请关闭代理Socks5并启用Http代理

    依赖准备完成后,应用程序将启动Flutter App工程化,打包为桌面端程序

    如果需要更换图标和资源资产在我们生成并运行的项目下的desktop目录下将其打包为可执行文件❙您还可以‼️构建一个悬停

  • 命令将其打包为exe可执行文件并输入desktop\build\outputs\windows显示路径♶如果还存在有一个Flutter App,可以按照上面的步骤将其打包成桌面程序并尝试一下。只需要注意桌面输入文件分离main_desktop.dart。目前,可以直接将 Flutter App 打包为桌面程序,但仍然会存在潜在的兼容性问题。另外,项目go-flutter-desktop尚不支持release模式,仅支持debug模式。这意味着编译后的桌面程序将始终有一个可用的黑匣子控制台,并且不断发出日志。

    作者:从0到1的编程之路
    链接:https://juejin.im/post/5cfe0ebdf265da1bb2772495
    来源:作者:掘金.商业转载请联系作者请求许可。非商业转载请注明来源。

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门