美文网首页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