最近新建flutter项目时,发现以前在macos端解决好的问题又重新出现了,我发现我竟然想不太起来如何解决了,还是记录一下吧。
macOs 联网问题,无法加载网络图片
iOS端和MacOs端默认是没有联网能力的,包括加载网络图片资源都不行,需要联网需要再${platform}/Runner/info.plist
文件中添加以下字典
这个配置允许应用绕过ATS(应用传输安全)限制,访问所有网络资源。如果你的应用只需要访问特定的域名,可以更精细地配置以提高安全性。
1 | <key>NSAppTransportSecurity</key> |
我这里还用到一些定位和蓝牙的内容
1 | <key>NSBluetoothAlwaysUsageDescription</key> |
在同目录下的文件夹下${platform}/Runner/DebugProfile.entitlements
文件中添加字典
1 | <key>com.apple.security.network.client</key> |
我目前只用MacOs平台做调试,没有构建正式的意思,正式应该需要把Release.entitlements
文件也维护上才行
移动设备状态里渐变沉浸
我目前知道两种方案,一种是利用AppBar中的flexibleSpace
属性,但是这种方案只能把状态栏和标题栏一起做成渐变色,如果下面还需要渐变范围的话就需要自己拼接,比较麻烦
1 | AppBar( |
第二种方案直接简单粗暴,获得AppBar的高度,然后body中使用层叠布局,把需要渐变的区域位移上去
1 | final appBar = AppBar( |
返回两次退出程序
在应用主界面很多App都是4s内返回两次直接退出程序,这个功能直接可以使用flutter中的PopScope
就可以实现
1 | /// 返回键退出 |
监听设备原生的音量加减按键
我以为这种简单的功能会有插件支持,结果翻了一圈都是监听音量变化的插件。还是的需要自己原生写代码。在原生安卓的入口kt代码里面加入下述代码
1 | import io.flutter.embedding.android.FlutterActivity |
然后flutter中需要使用的地方监听一下就行了
1 | import 'dart:async'; |