Flutter2.0
Flutter2.0已經(jīng)發(fā)布了,帶來(lái)了很多新消息。使開發(fā)人員能夠?yàn)槿魏纹脚_(tái)創(chuàng)建美觀虹菲、快速且可移植的應(yīng)用程序。 借助 Flutter 2掉瞳,可以使用相同的代碼庫(kù)將本機(jī)應(yīng)用程序發(fā)布到五個(gè)操作系統(tǒng): iOS毕源,Android,Windows陕习,macOS 和 Linux霎褐; 以及針對(duì) Chrome,F(xiàn)irefox该镣,Safari 或 Edge 等瀏覽器的 Web 體驗(yàn)冻璃。 Flutter 甚至可以嵌入到汽車,電視和智能家電中损合,為環(huán)境計(jì)算世界提供普遍且可延展的體驗(yàn)省艳。
現(xiàn)在終于可以在stable下直接開發(fā)桌面應(yīng)用了。最近剛好在做一個(gè)答題卡識(shí)別APP嫁审,需要做Windows版本(內(nèi)心是不想的跋炕,無(wú)奈Windows系統(tǒng)用戶多)。正好體驗(yàn)一下更新之后的變化律适。
flutter windows desktop
首先辐烂,切換到stable channel:
flutter channel stable
更新
flutter upgrade
打開Windows、macOS捂贿、Linux桌面支持
flutter config --enable-windows-desktop
flutter config --enable-macos-desktop
flutter config --enable-linux-desktop
創(chuàng)建項(xiàng)目
flutter create xxx
已有項(xiàng)目使用
flutter create .
即可重新生成項(xiàng)目纠修。
method channel
使用平臺(tái)通道在flutter和native本地程序之間進(jìn)行傳遞消息。Method channel就是平臺(tái)通道的api厂僧。
網(wǎng)上和官方能查到的都是關(guān)于iOS分瘾、Android平臺(tái)的使用教程,關(guān)于flutter windows桌面平臺(tái)的資料幾乎沒有吁系,在github上有看到一些issue德召。內(nèi)容也不夠準(zhǔn)確,通過自己的嘗試汽纤,最后終于找到了方法上岗。
在flutter windows項(xiàng)目目錄,找到runner文件夾下的flutter_windows_.cpp,添加如下代碼:
#include "flutter/method_channel.h"
#include "flutter/standard_method_codec.h"
void configMethodChannel(flutter::FlutterEngine *engine) {
const std::string test_channel("com.caidan.yuejuan/scan");
const flutter::StandardMethodCodec& codec = flutter::StandardMethodCodec::GetInstance();
flutter::MethodChannel method_channel_(engine->messenger(), test_channel, &codec);
method_channel_.SetMethodCallHandler([](const auto& call, auto result) {
std::cout << "Inside method call" << std::endl;
if (call.method_name().compare("__closeWindow__") == 0) {
std::cout << "Close window message recieved!" << std::endl;
result->Success();
}
else if (call.method_name().compare("goToNativeScanPage") == 0) {
std::cout << "goToNativeScanPage!" << std::endl;
result->Success();
}
});
}
在OnCreate方法中蕴坪,調(diào)用configMethodChannel方法即可肴掷。
在dart代碼中添加調(diào)起的方法就不贅述敬锐,不知道得可以看官方教程https://flutterchina.club/platform-channels/