美文网首页flutter 组件
使用flutter_app_upgrade实现Flutter A

使用flutter_app_upgrade实现Flutter A

作者: Vic_Weikun | 来源:发表于2020-10-21 17:45 被阅读0次

最近使用Flutter写的小软件要分发了,可是app升级还没有做好,怎么办...

通过我努力的...搜索,遇见了flutter_app_upgrade插件,看了下使用文档,功能满足需求,支持iOS跳转Appstore、Android内部下载.apk和应用市场更新,自带的升级弹窗UI默认还带有下载进度的水波动画,于是便决定使用它来做我这个小应用的Android内部下载更新。

https://pub.flutter-io.cn/搜索flutter_app_upgrade就能看到教程了,作者写得很详细,但是...我在过程中遇到了两个问题,一个是表述,一个是遗漏信息,下面我做一下补充,希望跟我一样 笨头笨脑,不!是跟我一样单纯可爱的人顺利 偷懒,是顺利完成功能啦😀

重点在此

这是原文的Android配置文件./android/app/src/main/AndroidManifest.xml的配置代码:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.flutter.laomeng.flutter_upgrade_example">
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:icon="@mipmap/ic_launcher"
        android:label="flutter_upgrade_example">
                ...
        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="com.flutter.laomeng.flutter_upgrade_example.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                tools:replace="android:resource"
                android:resource="@xml/file_paths" />
        </provider>
    </application>
</manifest>
问题1:包名的修改

android:authorities配置中的.fileprovider前面的内容替换为你自己的包名

android:authorities="自己应用的包名.fileprovider"

我不会告诉你我在这里直接把.fileprovider也去掉了而导致编译出错懵了半分钟😓

问题2:xml文件的创建

android:resource配置中配置了@xml/file_paths,配置指向了xml文件夹下的file_paths.xml文件,但是原教程中并没有提及要自己创建和配置,这可把我这种没做过Android原生开发的小可爱扔坑里了😟
所以用到这个包的小可爱们,咱先在./android/app/src/main/res目录下,新建一个名为xml的文件夹,然后再新建的目录下新建一个名为file_paths的xml格式文件,并且在新建的file_paths.xml中简单配置以下内容:

xml文件创建

Copy以下xml配置内容🙂:

<paths>
    <external-path
        name="external-path"
        path="."/>
    <external-cache-path
        name="external-cache-path"
        path="."/>
    <external-files-path
        name="external-files-path"
        path="."/>
    <files-path
        name="files_path"
        path="."/>
    <cache-path
        name="cache-path"
        path="."/>
    <root-path
        name="name"
        path="."/>
</paths>

完成以上两个配置,就可以继续按照原文的教程进行开发了。后台api我没有写,自己传了个.apk在Github上,亲测Android内部下载更新功能是没问题的。

❗❗❗ 这里还要注意一下:用于测试的手机上安装的和用于更新的.apk都要用release正式版的,如果手机上是通过开发环境安装,会提示 与安装版本签名不一致 而导致无法完成安装。

相关文章

网友评论

    本文标题:使用flutter_app_upgrade实现Flutter A

    本文链接:https://www.haomeiwen.com/subject/cnlemktx.html