首先要知道一点,android和ios的升级方式是不同的,ios只能通过跳转appstore或者fir的方式,但是android可以直接下载安装的
这里我用到了腾讯提供的的bugly(这点给bugly点个赞,用过bugly的都知道那边服务一直不怎么样,有问题也很难找到人,但是率先支持flutter还是要给个赞 链接https://pub.flutter-io.cn/packages/flutter_bugly)
第一步:我们有bugly账号的直接去新建产品就好了.然后到产品设置页面,复制app id
出来.初始化的时候要用到
第二步:配置grdle文件 不过我们一般都是arm平台的,我这里只用到了arm,不需要适配太多
defaultConfig { ndk { //设置支持的SO库架构 abiFilters 'armeabi-v7a'//, 'arm64-v8a', 'x86', 'x86_64' } }
引入插件 dependencies: flutter_bugly: ^0.2.8 然后在程序的入口文件main.dart中初始化
FlutterBugly.init(androidAppId: "your android app id",iOSAppId: "your iOS app id");
ios是热修复的用不到的可以不填的
第三步:
这一步是要重点说一下,因为要是用过android 原生引入bugly升级的都知道,bugly什么都帮你做好了,但是flutter是做不到的.我们要自己去写弹框还有下载安装的逻辑.
@overridevoid initState() { super.initState(); if (mounted && Platform.isAndroid) _checkUpgrade(); if (Platform.isIOS) _checkUpdateIos();}Future _checkUpdateIos() async { var response = await NetUtils.post(context, Api.checkUpdate, params: {'currentVersion': '1111'}); if (response['data'] != null) { var data = response['data']; _showUpdateDialog(data['updateContent'], data['newestVersion'], data['newestVersion'], true); } Logger().log(Level.info, 'response:$response');}void _showUpdateDialog(String versionname, String version, String url, bool isF