诺伊佩拉门票,权利的游戏第七季第七集下载,光画摄影
注意:无特殊说明,flutter版本及dart版本如下:
- flutter版本: 1.12.13+hotfix.5
- dart版本: 2.7.0
应用程序升级功能是app的基础功能之一,如果没有此功能会造成用户无法升级,应用程序的bug或者新功能老用户无法触达,甚至损失这部分用户。
对于应用程序升级功能的重要性就无需赘言了,下面介绍下应用程序升级功能的几种方式,从平台方面来说:
从强制性来说可以分别强制升级和非强制升级:
下面分别介绍ios和android升级流程。
ios升级流程如下:
流程说明:
相比ios的升级过程,android就稍显复杂了,流程图如下:
流程说明:
介绍完了升级流程,主角终于出场了。
只需在主页的initstate
方法中调用升级检测方法:
@override void initstate() { appupgrade.appupgrade( context, _checkappinfo(), iosappid: 'id88888888', ); super.initstate(); }
_checkappinfo
方法访问后台接口获取是否有新的版本的信息,返回future<appupgradeinfo>
类型,appupgradeinfo
包含title、升级内容、apk下载url、是否强制升级等版本信息。
iosappid
参数用于跳转到app store。
_checkappinfo()
方法通常是访问后台接口,这里直接返回新版本信息,代码如下:
future<appupgradeinfo> _checkappinfo() { return future.value(appupgradeinfo( title: '新版本v1.1.1', contents: [ '1、支持立体声蓝牙耳机,同时改善配对性能', '2、提供屏幕虚拟键盘', '3、更简洁更流畅,使用起来更快', '4、修复一些软件在使用时自动退出bug', '5、新增加了分类查看功能' ], apkdownloadurl: '', force: false, ));
好了,基本的升级功能就完成了,弹出提示框的效果如下:
点击“以后再说”,提示框消失,点击“立即体验”,自动区分不同平台。
访问后台接口获取新版本的信息一般需要当前app的包名和版本,查询方法如下:
await flutterupgrade.appinfo
返回的类型是appinfo
:
ios平台直接跳转到app store相关页面,iosappid
一定要设置对,否则app store会找不到应用程序。
android平台则会判断是否设置了apk下载url,如果设置了则下载apk则直接下载,效果如下:
当下载完成时直接跳转到apk安装引导界面,效果如下:
用户点击允许,出现如下界面:
点击继续安装即可,上面的安装引导界面是系统界面,不同的手机或者不同的android版本会略有不同。
如果不提供apk下载地址,点击“立即体验”,则会跳转到应用市场,不指定应用市场则会弹出提示框,让用户选择应用市场,效果如下:
提示框内将会包含手机内安装的所有的应用市场,用户选择一个然后跳转到对应应用市场的详情界面,如果当前应用未在此市场上架则会出现“找不到的界面”。
通常情况下会指定应用市场,这就需要知道用户手机内安装的应用市场,查询方法如下:
_getinstallmarket() async { list<string> marketlist = await flutterupgrade.getinstallmarket(); }
插件内置了国内常用的应用市场,包括小米、魅族、vivo、oppo、华为、zte、360助手、应用宝、pp助手、豌豆荚,如果你需要检测其他的应用市场,比如google play,只需添加googl play的包名即可:
_getinstallmarket() async { list<string> marketlist = await flutterupgrade.getinstallmarket(marketpackagenames: ['google play 包名']); }
方法返回手机安装的应用市场,根据安装的应用市场指定跳转应用市场,如果你要指定内置的应用市场,可以根据包名获取内置的应用市场的相关信息:
appmarketinfo _marketinfo = appmarket.getbuildinmarket(packagename);
指定华为应用市场:
appupgrade.appupgrade( context, _checkappinfo(), iosappid: 'id88888888', appmarketinfo: appmarket.huawei );
指定没有内置的应用市场方法如下:
appupgrade.appupgrade( context, _checkappinfo(), iosappid: 'id88888888', appmarketinfo: appmarketinfo( '应用市场名称(选填)','应用市场包名','应用市场类名' ), );
如果默认的升级提示框不满足你的需求,那么你可以定制你的升级提示框。
title及升级内容文字样式设置:
appupgrade.appupgrade(context, _checkappinfo(), titlestyle: textstyle(fontsize: 30), contentstyle: textstyle(fontsize: 18), ... )
通过titlestyle
和contentstyle
设置其样式,可以设置字体大小、颜色、粗体等。
设置“取消”和“升级按钮”文本和样式:
appupgrade.appupgrade(context, _checkappinfo(), canceltext: '以后再说', canceltextstyle: textstyle(color: colors.grey), oktext: '马上升级', oktextstyle: textstyle(color: colors.red), ... )
默认“取消”按钮文本是"以后再说",默认“升级”按钮的文本是“立即体验”。
设置“升级”按钮的背景颜色,需要2种颜色,2种颜色左到右线性渐变,如果想设置纯色,只需将2种颜色设置为同一个颜色即可,默认颜色是系统的primarycolor
:
appupgrade.appupgrade(context, _checkappinfo(), okbackgroundcolors: [colors.blue, colors.lightblue], ... )
设置进度条的颜色:
appupgrade.appupgrade(context, _checkappinfo(), progressbarcolor: colors.lightblue.withopacity(.4), ... )
设置升级提示框的圆角半径,默认是20:
appupgrade.appupgrade(context, _checkappinfo(), borderradius: 15, ... )
由于环境的原因,目前源代码还无法发布到github及pub上,后续会开源,当然也可以关注我的公众号,回复“flutter 升级”即可获得源代码。
欢迎加入flutter的微信交流群(微信:laomengit),一起学习,一起进步,生活不止眼前的苟且,还有诗和《远方》。
非常希望您关注我个人的公众号,里面有各种福利等着大家哦。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论