近来闲暇时间一直在做Flutter,闪屏页是一个比较常见的需求,网上的闪屏页教程大部分是那种类似于广告页,而非iOS中的 LaunchScreen 性质的闪屏页.按照原来的方案我们要配置闪屏页的话,我们需要同时配置两端的闪屏页,那么有没有比较简单的方案来配置闪屏页呢? 毋庸置疑,当然是有了,那就是Flutter的插件 - flutter_native_splash . 接下来我们就来看一下具体应该怎么使用这个插件.
创新互联专业提供绵阳主机托管服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买绵阳主机托管服务,并享受7*24小时金牌售后服务。
首先把 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 的使用全部内容,其实比较简单,如果需要定制化的,建议还是各自平台配置各自的闪屏页.如果有任何问题欢迎在评论区批评指导,感谢大家了.
Demo 通过 flutter-unity-view-widget 库,达到 Flutter 内嵌 Unity 目的
主要功能:
无
简单记录一下:
背景是开发周期太短,web端已经开发完成,但是来不及做安卓跟iOS端,leader想了下用网页内嵌应付着先。后期可能会考虑用flutter重构吧,这个到时再分享。
具体参考uniapp官网。
这里就只使用了一个webview标签。
另外由于使用场景是跟地图相关,设置横屏。
完事打包就行。
注:亮度调节和音量调节gif无法体现,功能是ok的,其次默认Icon锁的close和open实在难以分辨。
环境:Flutter 2.8.1 channel stable ;Dart 2.15.1
需要音频播放器的看这里: Flutter音乐播放器
重点说下这个工具类,因为视频播放,涉及到状态改变有很多,笔者刚开始选择使用 InheritedWidget 来在众多的widget之间共享数据。但是总感觉这样有点繁琐,且不很优雅!
这里非广告,如果是使用 GetX 就很简单了,笔者也使用了 GetX 进行封装了,一泻千里的赶脚!,但是笔者还是那句话:刚开始接触Flutter的开发者不是很建议使用 GetX ,可以先熟悉下Flutter状态管理的基础原理再行使用。而且为了尽量简洁,还是不引入其他的第三方了。
我们选择对第三方插件进行封装的目的不外乎这几个:
于是笔者就写了一个工具类 VideoPlayerUtils ,专门且只用来处理播放器的所有业务。包括暂停、播放、跳转、调节音量、调节亮度、切换视频等操作。在所有的widget中不会引用关于 video_player 或其他第三方插件的任何信息, VideoPlayerUtils 负责widget与播放器之间的所有操作交互。后续优化迭代或更换播放器插件时,只需针对这个工具类进行修改,对所有widget不会有任何的影响,大大的解耦合了。
其中 VideoPlayerState :
提供以上的公共属性,可以通过 VideoPlayerUtils 来获取对应的值,使用 get 只读,使外界不会误修改这些属性,以保证数值的安全性。开发者可根据自身需要自行添加属性。
提供以上方法来处理播放器的所有业务。同样的开发者可根据自身需要自行添加或修改。
重点说下这个方法,是整个业务的核心方法,控制视频的播放或暂停。开发者只要遇到播放或暂停是均可调用此方法,具体是播放或暂停,内部根据传入的 url 自行判断,开发者不需要关心。
切换新视频也是使用此方法,传入的 url 与上次不一致,自动切换新视频。笔者可根据 statusListener 来监听播放状态的改变,以此处理自身逻辑。
这个也需要提下,视频播放器在播放新视频时会异步初始化,一般我们的操作是在 initState() 初始化,成功后再 setState() 。这里笔者遇到一个让人蛋疼的问题:
我们看 video_player 的使用:
VideoPlayer(controller) :widget中已经持有了controller。本来笔者封装的目的就是为了让widget与controller的之间解耦合。但此时的笔者。。。。
放弃不是不可能放弃的,这辈子都不会放弃的!
于是笔者取了巧,写了一个初始化监听器 initializedListener ,包换2个参数: bool,Widget ,初始化是否成功;其中widget为初始化成功返回需要展示的播放器UI,失败默认返回 const SizedBox() 。
到这里就可以简单使用了:
没看错,视频播放就是这么简单。
如果有更多的业务功能,笔者也按照自己的需求写了一套,同样的开发者可根据自身需要自行添加或修改。
VideoPlayerGestures 主要是处理手势的,比如快进、快退等跳转播放;左侧上下滑动调节亮度;右侧上下滑动调节音量;单击是否开启沉浸式播放,所有widget的隐藏与显示;双击播放、暂停等。
哦,还有 PercentageWidget 也放到这个文件下了,就是这玩意:
因为显示的百分比与手势相关,随着手势移动而更新。开发者可自行处理。
笔者处出于简单考虑,就按照整个UI的位置命名了。瞅一眼就知道是啥玩意。
同样的开发者可根据自身需要自行添加或修改。
就是这玩意:
同样的开发者可根据自身需要自行添加或修改。话说这个锁的 Icon 的open和close是真的难分辨!
就是这玩意:
同样的开发者可根据自身需要自行添加或修改。
这玩意是自定义的,别问,问就是跟产品干一架落了下风
主要就是自定义这玩意:
同样的开发者可根据自身需要自定义。
注:这里没有添加缓冲的进度,开发可查看 video_player 中的源码 VideoProgressIndicator ,按业务自行定义。
这玩意就是整合以上的widget,再考虑下全屏的安全区域,没啥东西。开发者可自行处理!
具体的实现监听器的思路, 看这里 。
自此一个漂亮的Flutter视频播放器就已经结束了。如果您觉得对您有些许帮助的话,欢迎 Star !
前端最火热的话题无法就是flutter,不管是刷哪个论坛,必定有探讨flutter的文章。没用过flutter,但是对于跨平台的技术,我一直都在研究。
为什么是uni-app
之前一直在找解决跨平台的方案,尝试了很多方案,比如滴滴的变色龙,但是最终还是选择了uni-app,这里附上uni-app的官网。为什么会选择它呢,第一,vue语法,学习成本低,上手速度快,只要之前你做过vue的项目,那么就能很快上手,其实是vue和微信小程序的结合体,一半vue,一半微信小程序。第二,长期维护,之前做微信小程序的时候,选择了美团的mpvue,但是后面发现长期不维护了,提了Issues也没人理,随之就放弃了,而uni-app长期在维护,这样看出了开发团队的用心。第三,跨平台的能力,uni-app能够跨多个终端,H5,安卓,Ios,微信小程序,百度小程序,头条小程序,支付宝小程序,真正实现了一套代码,多端运行,而且很好适应了我国的市场。第四,日益丰富的插件市场,uni的插件市场也在日益强大,能够基本上满足我们平时的开发需求。
uni-app的组件有原生调用能力,第三方的vue库在调原生接口时跟 5+runtime 不兼容。就像nativescript 有vue版和angular版,类似于react native , 都是起源于phonegap/cordova
实际开发效果遵义小红椒 做了一款app,打包了安卓,Ios,微信小程序3个平台,产出的效果都还是不错,总体还是比较满意。而且打包过程也很方便简单,配套的HBuilderX自动内置了打包功能,所以也省去了打包的烦恼。
遵义小红椒 建议
如果你现在想做一款跨平台的产品,而且有vue和微信小程序的经验,最重要的,你不想学习一门新语言,那么uni-app也许是你的一个选择。
网站栏目:flutter内嵌广告,flutter 接入广告
文章URL:https://www.cdcxhl.com/article0/phgeoo.html
成都网站建设公司_创新互联,为您提供网站建设、网站内链、软件开发、网站设计、定制开发、品牌网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联