为什么我从Flutter转投Electron的怀抱?
最近打算做一个应用来收集灵感和整理素材,帮助写文章。Flutter全平台,早如雷贯耳。想着可以一套代码运行在手机、平板、电脑,那就真的全方位收集素材,再简单打个服务器就可以爽歪歪了。
结果flutter一上来就给我一顿打脸。
由于想用拖动的方式收集素材,特别在iPad上可以多应用分屏,收集素材不需要再保存图片再导入图片到应用。另外复制文字可以直接通过拖动来获取。
而现实是,Flutter sdk不支持外部应用拖动文件进来。其内部的Draggable和Dragtarget组件只能实现内部的拖动,或者说Dragtarget组件只能接受Draggable的组件。
经过大量时间的搜索,flutter的一位贡献者自己开发了从flutter应用中拖拽图片出去(github相关issue在这里 https://github.com/flutter/flutter/issues/30719, 其他目前flutter pub中支持此功能的只有在web平台实现的插件。而在ios web等其他平台,各位需要自己实现各个平台的flutter插件。但是这研究一个平台插件的花费的时间,可能足够我在原生平台用swift或者kotlin把应用做好了。
可能这其中的工作量可能会带来更多的工作机会?也许是各个flutter开发者每天沉浸在繁重的开发过程中可能性更大一点。
而等我转到Electron,柳暗花明。此时此刻我们是幸运的,web api我们可以尽情享用。
只需通过dataTransfer的getData方法,获取正在拖动的文本或者图片的src或者a标签的href。
通过dataTransfer.files获取正在拖动的文件。
document.addEventListener('drop', (event) => {event.preventDefault() event.stopPropagation(); console.log(event.dataTransfer.getData("text/uri-list"))if (event.dataTransfer.getData("text/plain")) {// URLif (event.dataTransfer.getData("text/plain").indexOf('://') > -1) {const img = document.createElement('img')img.src = event.dataTransfer.getData("text/plain")document.body.append(img)} else {// 文字const img = document.createElement('div')img.innerText = event.dataTransfer.getData("text/plain")document.body.append(img)} } // 文件for (const f of event.dataTransfer.files) {console.log('File Path of dragged files: ', f.path)const img = document.createElement('img')img.src = f.path document.body.append(img)} })
一切都是那么美好。
Flutter毕竟是个注重UI和动效的UI框架,更何况dart的生态还没有建立的很完善。所以只推荐展示类的应用使用它实现。一套代码跨全平台还是很香的。
但是一旦是复杂的编辑或者创作类应用我还是更倾向原生或者使用Electron,React Native开发。
#Flutter##electron##跨平台开发##React#
为什么我从Flutter转投Electron的怀抱?相关推荐
- 慕尼黑讨论放弃 Linux 转投 Windows 10
德国慕尼黑市花了十年时间从Windows和Office迁移到开源替代--基于Ubuntu的LiMux和OpenOffice.现在,慕尼黑市的政客正在辩论是否放弃Linux再次转投微软的怀抱--这一次是 ...
- VS Code 成主宰、Vue 备受热捧!2019 前端开发趋势必读
前端在生产和开发中占据着越来越重要的地位,PC 端.手机端.桌面端.智能手表端等等设备都离不开前端的身影.本文将围绕框架.编程语言.工具.React.Vue 等方面,全面回顾 2019 年前端与 We ...
- Visual Studio Code为什么能这么牛X?
点击上方"视学算法",选择"置顶或者星标" 你的关注意义重大! 作者:李少侠 链接:https://zhuanlan.zhihu.com/p/35303567 ...
- VS Code为什么能这么牛?
作者:李少侠 https://zhuanlan.zhihu.com/p/35303567 已获转载授权 Visual Studio Code(VS Code)近年来获得了爆炸式增长,成为广大开发者工具 ...
- Visual Studio Code,这是要上天?
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 来源:http://1t.click/akuE 它作为一个 ...
- VSCode 与 WebStorm 横向对比
前言 不能认清自己,怎能看清别人? 最近很长一段时间,VSCode 似乎成为了前端口中的标准开发编辑器,前端圈到处都在推荐 VSCode,劝说其他人放弃 Sublime, WebStorm, Atom ...
- Android Weekly - 42 : 打铁还需自身硬
技术文章 Android Native | 内存问题的终极武器 --MTE https://juejin.cn/post/7013595058125406238 Android R 常见 GC 类型与 ...
- 推荐几个我经常浏览的前端博客
前言 今天有人私信问我优秀的前端博客,说实话我个人也是刚入门,看的也不是太多,这里分享一下我觉得比较好的前端博客. 胖哥 技术胖,原名,我也不知道,10年要出1000集免费教程,掘金前端优秀作者,这是 ...
- 为什么 VS Code 会这么牛逼?
点击上方"码农突围",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 来自公众号码农翻身 | 作者:李少侠 链接:zhuanlan.zhihu.com/p/35303567 ...
最新文章
- 【团队】 冲刺一(10/10)
- 如何将程序添加到系统服务实现开机自启动
- wxPython_Phoenix在线安装
- Python下tornado实现webSocket实现
- boost::math模块使用词法转换的一个非常简单的例子的测试程序
- 指标搭建篇:如何搭建指标体系?——以公众号实战为例
- 杭州 3~5年 前端面经,高频面试题总结
- 解决Ubuntu18.04 No wifi adapter found
- 粤嵌gec6818项目设计_西安市幸福林带景观及亮化设计国际竞赛终期评审会顺利举行...
- anaconda没有vscode_Ubuntu18.04安装Anaconda3和VSCode指南
- 原生input和onchange
- linux常用内核端口,基于Linux下的/O端口和I/O内存详解
- C语言中 . 和 - 区别详解(举例解释)
- dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题
- IS-IS详解(二)——IS-IS邻居建立
- [渝粤教育] 西南科技大学 刑法学 在线考试复习资料(1)
- C++调用tensorflow训练好的SSD物体检测模型-opencv3.4.3
- [笔记]MySQL 配置优化
- Dreammail 下载与安装
- 为什么博客图片不显示?
热门文章
- 浮华,原来青春是一场梦
- 【决策树算法】泰坦尼克号乘客生存预测
- 杨百万:中国股市是政策市 炒股要听党和政府的话
- IEEE Transactions on Instrumentation and Measurement(IEEE TIM)投稿记录
- matlab在振动信号处理中的应用pdf,matlab在振动信号处理中的应
- easypoi 语法_英语语法那些事儿
- JetBot之旅(1)
- MySQL——O4. 表结构设计和数据类型优化
- 转:Dictionaryint,string怎么获取它的值的集合?急!急!急!
- hihocode_1082 沼跃鱼