前言五年前,有人告诉我,你可以错过其他技术,但千万不要错过Flutter。然而此刻,有人告诉我,如果你错过了OpenHarmony,恐怕要错过下个时代了。作为发展了5年的FlutterCandies社区,我们已拥有70+的Flutter组件。我们当然也不会止步于Flutter。我们希望把我们的Flutter组件也能带到OpenHarmony生态当中,HarmonyCandies便是为了这一刻。以Flutter开发者的角度,尽可能提供相同Api的OpenHarmony组件。本文默认您已经有一定的OpenHarmony开发经验,并且阅读过以下内容。使用的ide版本为DevEcoStudio4.0R
在开发app的过程中,我们经常需要根据app的前后台的状态,做一些事情,那么我们在flutter中是如何实现这一监听的?flutter给我们提供了WidgetsBindingObserver来进行一些状态的判断,但是判断前后台的状态只是该API种其中一种功能,对于WidgetsBindingObserver需要注意两点最好是先进入而且不会销毁的页面,这可以判断整个程序的前后台状态(例如:main。dart类中)WidgetsBindingObserver需要被写在MateialApp或其它主题包裹的地方1.监听app进入前后台状态示例//1.第一步需要混入WidgetsBindingObser
今天上午发了一篇使用SVN的小记,在解决问题的过程中,发现不少同学在使用AndroidStudio进行Flutter应用开发时,对需要忽略哪些文件(不提交到SVN协同)不是很明确,对于这个问题,Flutter官方有明确的说明,可通过下面的网址进入了解:https://dart.dev/guides/libraries/private-files WhatnottocommitWhenyouputDartsourcecodeinarepository—usingthe pubtool, GitHub, oranothersourcecodemanagementsystem—don’tinclud
代码如下typedefCallback=Function(Function([dynamicvalue])resolve,Function(Exceptionerror)reject,);classPromise{Promise();staticFuturerun([Callback?callback,])async{finalcompleter=Completer();//resolve([value]){returncompleter.complete(value);}//reject(Exceptionexception){completer.completeError(exceptio
flutter的网络环境主要受三个配置项的影响,flluter的网络环境,github的网络环境和android的网络环境,现在对每一配置项详细说明1.配置flutter的网络环境配置项flutter的网络环境的配置官方进行了引导说明,官方引导说明见https://flutter.cn/community/china,另外还需额外配置.1.1flutter.gradle文件的设置找到fullter安装目录,在这个路径/flutter/packages/flutter_tools/gradle/flutter.gradle找到flutter.gradle这个文件,把flutter.gradle文
之前用FlutterCanvas画过一个三角三角形,html的Canvas也画过一次类似的,今天用FlutterCanvas试了下感觉差不多:html版本大致效果如下:思路和html实现的类似:也就是找出点的位置,使用二阶贝塞尔曲线实现: 代码如下:import'package:flutter/material.dart';classPageCanvasextendsStatefulWidget{constPageCanvas({Key?key}):super(key:key);@overrideStatecreateState()=>_PageCanvasState();}class_Pag
前言提到跨平台,第一个想到的都是Flutter,如果你简历上有写使用过Flutter总能让人对你加技术分。本人很愚笨,但相信只要你坚持,最后你会得到应有的回报。当你的基础知识好到让面试官怎么都问不倒的时候,那你离offer就很近了。好了,铺垫已经做好了,接下来就直接上最近面试整理的Flutter干货了。1.Dart语言的特性?Productive(生产力高,Dart的语法清晰明了,工具简单但功能强大)Fast(执行速度快,Dart提供提前优化编译,以在移动设备和Web上获得可预测的高性能和快速启动。)Portable(易于移植,Dart可编译成ARM和X86代码,这样Dart移动应用程序可以在
想要让桌面软件实现全屏和不显示状态栏或者自定义状态栏,就可以使用window_manager这个依赖库,使用起来还是非常方便的,可以自定义显示窗口大小和位置,还有设置标题栏是否展示等内容,也可以设置可拖动区域。官方仓库地址:window_manager|FlutterPackagegithub仓库地址:https://github.com/leanflutter/window_manager 安装依赖在pubspec.yaml文件中添加依赖:window_manager:^0.3.7,并更新依赖库:pubget初始化window在main.dart中配置初始化:voidmain()async{
在项目开发中需要添加webview,加载内置的html文件,代码写完后ios运行没有问题,运行安卓时报错,错误提示如下:FAILURE:Buildfailedwithanexception.*Whatwentwrong:Executionfailedfortask':app:checkDebugAarMetadata'.>Afailureoccurredwhileexecutingcom.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction>2issueswerefoundwhencheckingAARmetadata:1
业务场景:并发请求A、B、C三个接口,但是这个三个接口都需要携带token才能请求到正确结果,所以我们的正确思维应该是,例如A接口请求到了,但是返回401没有权限,这个时候就需要拦截B和C两个接口不去执行,然后A接口返回401之后我们去请求tokne,拿到token后还有把A接口重试一下,也就是重新请求一次,最后,我们再放行B和C接口的请求。dio^4.0的版本里才有Lock这个类,到了dio^5.0的版本,作者希望使用QueuedInterceptorsWrapper去拦截队列请求。但是一定要注意,整个功能我们需要两个dio的实例,一个负责正常的业务请求,另一个dio实例负责只请求token