1,执行 flutter pub publish--dry-run 检查是否具备发布条件
创新互联建站是少有的成都网站建设、网站设计、营销型企业网站、微信平台小程序开发、手机APP,开发、制作、设计、买友情链接、推广优化一站式服务网络公司,从2013年开始,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评
遇到的问题1:
It‘s strongly recommended to include a “homepage“ or “repository“ field
解决方案:在 pubspec. yaml 中配置 主页 homepage 地址 :
homepage:
可参考:
2,执行 flutter pub publish--server= 发布
如果执行flutter pub publish发布的话会遇到以下错误,国内还是用 flutter pub publish--server= 来发布
package repository requested authentication! You can provide credential using:pub token add
问题1:It looks like accounts.google.com is having some trouble. Pub will wait for a while before trying to connect again. OS Error: Operation timed out, errno = 60, address = accounts.google.com, port = 53481 pub finished with exit code 69
原因:
1、国内墙;
2、flutter环境配置添加了国内镜像
解决方式:
1、翻墙;
2、屏蔽环境变量里关于flutter的国内镜像;
屏蔽方式如下:
# export PUB_HOSTED_URL=
# export FLUTTER_STORAGE_BASE_URL=
3、设置终端代理命令(这个是我解决的方式),这个非常重要,不然就会报上面超时错误了
如果出现:Flutter pub finished with exit code 1
解决方式:flutter packages pub publish --server=
此问题原文链接:(毕竟要尊重版权)
问题2:LICENSE这个文件中不能有TODO,也不能为空,可找个flutter库看看别人是怎么写的
目前Flutter平台主流的两个播放器是video_player和fijkplayer
pub
github
1、Flutter平台官方插件,作者是国外的,有问题沟通比较困难,只能通过提交issue
2、硬解码
4、UI封装: better_player
基于video_player和Chewie的高级视频播放器。它解决了许多典型的用例,并且易于运行。
5、播放器宽高比例与视频内容宽高比例不一致时,会出现图像压缩变形的问题
6、调用原生内核播放器:iOS--AVPlayer, Android--ExoPlayer
7、对于分段源 m3u8 的播放不友好,如果一个切片播放超时,会导致整个播放都失败
8、better_player可以缓存视频,但不能自定义缓存的地址,只能指定key,和缓存的最大内存量(还未研究超出最大的话是不能缓存新的,还是删除最旧的)
9、better_player不能完全自定义UI,只能修改类中的一些开放属性,比如说icon图标,文字颜色啥的
10、无网络有缓存时,封面可以正常展示
11、better_player播放失败有手动retry的设计
pub
github
1、fijkplayer 是一个 Flutter 生态的媒体播放器,是对 ijkplayer 的 Flutter 封装,支持 Android 和 iOS。 fijkplayer 使用 ijkplayer 作为播放器内核,ijkplayer 使用 ffmpeg 进行音视频解封装和解码,同时添加了 Android 和 iOS 平台特有的硬件加速解码能力。
2 、国内有QQ群,但是活跃度也是不高。
3、可以缓存视频,可以自定义缓存的地址,方便后续的内存维护。
4、可以通过FijkPanelWidgetBuilder较大程度上自定义UI。
5、无网络有缓存视频时,无法展示封面,因为内部是通过imageProvider去加载网络图片的。
7、播放失败无手动retry的设计
1、两种播放器都是通过外接纹理方案 (Texture),将播放器视频画面渲染接入 flutter 中,性能上优于 PlatformView 的接入方法。
如何自己实现?
下面以video_palyer的iOS源码部分解释:
iOS用CVPixelBufferRef将渲染出来的数据存在内存中,Flutter engine会将Texture的数据在内存中直接进行映射无需通过Channel传输,然后Texture Widget就可以把你提供的这些数据显示出来。在我们传输数据的时候会需要将其与 TextureID 绑定,绑定的过程通过BasicMessageChannel实现数据流的传输,以做到实时展示的效果
近来闲暇时间一直在做Flutter,闪屏页是一个比较常见的需求,网上的闪屏页教程大部分是那种类似于广告页,而非iOS中的 LaunchScreen 性质的闪屏页.按照原来的方案我们要配置闪屏页的话,我们需要同时配置两端的闪屏页,那么有没有比较简单的方案来配置闪屏页呢? 毋庸置疑,当然是有了,那就是Flutter的插件 - flutter_native_splash . 接下来我们就来看一下具体应该怎么使用这个插件.
首先把 flutter_native_splash 导入到工程的 pubspec.yaml 中.这里需要注意的是需要放在 dev_dependencies 下,而不是 dependencies .具体如下所示.
接下来我们就来配置 flutter_native_splash ,在配置之前我们看一下 flutter_native_splash 的可配置项.
例如,我现在只有一个logo图片,那么我想生成iOS和android两端的闪屏页,这时候我只需在 pubspec.yaml 如下设置即可.
当然了,如果你有其他配置可以自行进行添加.
配置完成了,我们该如何生成呢?这时候需要我们打开终端 cd 到我们的工程目录下.如果是Android Studio 或者 VSCode 默认就是在当前工程目录下.
然后我们需要执行下面的三个命令来生成闪屏页
每一次都敲三个命令实属麻烦,我们把上诉的三个命令整合成一个命令,如下所示.
那么,我们不想使用该插件生成的闪屏页该怎么办呢?我们只需要执行下面命令即可.
注:每一次更换图片都是需要重新执行命令重新生成.
OK,上面就是关于 flutter_native_splash 的使用全部内容,其实比较简单,如果需要定制化的,建议还是各自平台配置各自的闪屏页.如果有任何问题欢迎在评论区批评指导,感谢大家了.
前提:Flutter 项目中引入使用多个插件,内含有swift与静态库时出现的一系列问题
问题一、swift插件缺少设置swift的版本号
解决方案:在Xcode中打开项目Targets—builds settings —user-defined
在user-defined内添加一行:SWIFT_VERSION(版本号视当前版本号为准)
问题二、静态库
看到网上好多的解决方法是删除掉或者添加上Podfile中的use_frameworks!,实测与此无关,错误信息忘记截图啦????,大体就是pod install 时出现无法install之类的信息
正解方法是找到相关错误插件内的podspec文件,添加s.static_framework = true
1.webview_flutter
2.flutter_inappwebview
3.flutter_webview_plugin
笔者最近发现webview_flutter在Android端嵌套带有较长的Webview页面时偶欧会存在卡顿问题表现为加速向下滑动到页面底部,然后从底部慢慢像上滑就不起作用了,体验很不好,经过一天的排查和实验发现是webview_flutter插件自己的问题,用原生嵌套WebView并没有问题,后来改成flutter_webview_plugin问题可以解决,但是flutter_webview_plugin插件并不是基于flutter渲染的并不能在嵌套webview的页面自定义flutter样式层,后来发现使用flutter_inappwebview插件能够完美解决问题。推荐你们用flutter_inappwebview。