futter开发的应用支持安卓与ios系统,但是要是想同样实现桌面版,就得利用别的工具来实现全平台。目前在github上有两个方案来实现全平台,一个是flutter官方的方案flutter-desktop-embedding,还有一个是使用go和glfw开发的go-flutter。
Flutter Desktop Embedding的话需要开发者会Windows、macOS、Linux三个平台的原生开发,而go-flutter只需要你会go语言,不会再学也比较简单省时,基本上不需要开发插件的话,就用不到go语言来编程。所以我就选择了go-flutter。
golang的官网是打不开的,下载go得去golang国内镜像站选择Linux的下载。点进去就有教程告诉你怎么安。
下载完后,把它提取到home里。
这里我按它的教程来做的时候出了很多问题,自己摸索着,最终成功的方法如下:
配置两个地方的环境变量:一个是在profile里,一个是在bash_profile里。
这一步查看ububtu添加环境变量GOPATH这篇文章
这一步若是配置成功的话,在终端运行go version会显示你下载的go的版本号;运行echo $GOPATH会出现工作空间目录路径,我的是home里的goproject。
在goproject里新建空白文档,命名为hello.go。在其中输入以下代码:
package main
import “fmt”
func main() {
fmt.Printf(“hello, world\n”)
}
保存后,在终端输入:
cd $HOME/goproject
go build
./hello
显示hello, world就说明go安装成功了。
hover是由 go 编写的, 专门来创建flutter桌面应用的工具,编译、打包、运行都得依靠这个工具。
官网的安装教程
运行以下命令来安装hover:
go get -u github.com/go-flutter-desktop/hover
终端什么都没出现的话,就表明安装成功了。通过hover -h检查是否安装成功,出现以下内容即可:
有看到有的教程说,hover是安到$GOPATH/bin里了,但是我的没在这个路径里,我也不知道安到哪去了,反正能用就行
这一步我遇到的问题就是,go get安装hover,显示打不开github.com/go-flutter-desktop/hover这个网站,遇到这种情况的话,把go卸载,重新安就行,注意要卸载干净。怎么卸载,可参考Linux下Go的安装、配置 、升级和卸载
不记得放哪了的话,可用which go找到
这一步可有可无,我是用来实验的,看前面所做的准备工作是不是都能生效。
步骤:
1)下载例子
go-flutter-desktop/examples
里面有好几个例程,随便哪个都可以。我选的pointer_demo
2)把Flutter的环境准备好
export PATH='pwd'
/flutter/bin:$PATH
再用Android studio打开例程,能正常打开没有错误的话就可以直接进行下一步。
要是打开显示没有配置dart SDK的话,到设置里去设置dart SDK的路径
3)运行
终端输入:
cd example/pointer_demo
hover run
运行出来的结果:
这个例程是记录鼠标移入或移出中间那个蓝框框(容器container)的次数。
我要迁移的应用是之前按照Flutter中文网创建的start_up namer
编写您的第一个 Flutter App
cd /flutterProject/startup_namer
hover init github.com/startup_namer
这一步若是不做,在hover run的时候会出现如下错误:
main_desktop.dart里写入以下代码:
import ‘package:flutter/foundation.dart’;
import ‘package:flutter/widgets.dart’;
import ‘main.dart’;
void main() {
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
runApp(MyApp());
}
运行出来如下图:
而手机版的有显示单词,如下:
所以说,单纯添加以上代码还不够,有的包没有导得进去。
以后再更新解决这个问题