zoukankan      html  css  js  c++  java
  • flutter 热更新实现方案—UI资源化(一)

     flutter 热更新实现方案—UI资源化(一)

       Demo代码

    一、Android Studio创建应用flutter项目flutter_hot_update,如下图:

     

    1、在flutter_hot_update层级下创建flutter模块包,flutter_hot_update右键—>New—>Module—>Flutter Package ,操作如下:

     

     

    创建三个模块包分别为flutter_pkg(放置公共组件、配置信息等)、flutter_res(放置资源文件可更新)、flutter_script(放置事件触发脚本等文件),如下图,相关文件后面会说明。

     

    创建完成之后,在flutter_hot_update层级下的pubspec.yaml文件中添加flutter_pkg依赖,执行右上角Pub get下图:

     

    依赖完成之后,在flutter_pkg重新创建MyApp.dart文件创建新的MyApp widget,同时进入主项目的main.dart,删除MyApp widget相关代码,把新的MyApp引入进来,如下图:

     

    修改完成之后,widget_test.dart 会报错,test文件夹没有可以删除,也可以导入文件import 'package:flutter_pkg/MyApp.dart';,消除报红,

    到这里,项目大的框架基本搭建完成。

     

    完成基本项目搭建之后开始安装http-server(http-server是一个简单的零配置命令行http服务器),因为flutter_res中的json文件是放在服务器上的,所以需要在本地开启http服务器来测试。

     

    http-server安装:

     

    1、先安装nodes,网址:https://nodejs.org/en/download/current/


    2、安装完成后在cmd中输入 node -v 检测:

     

    3、用npm安装http-server

     

    终端输入下面的命令:

    npm install http-server -g

    这里注意要使用-g选项,安装成全局的,这样我们才可以在任意的目录使用。

     

    使用:

    http-server [path] [options]

    [path]是你想访问的资源文件夹的路径,即之前项目中flutter_res文件路径

    [options] 可选配置:

    -p 要使用的端口(默认为8080)

    -g或--gzip启用时(默认为“False”),它将用于./public/some-file.js.gz代替./public/some-file.jsgzip压缩版本的文件,并且该请求接受gzip编码。

    -c设置缓存控制max-age头的缓存时间(以秒为单位),例如-c10 10秒(默认为'3600')。要禁用缓存,请使用-c-1。

    --cors通过Access-Control-Allow-Origin标题启用CORS

    等等还有很多可选配置,这里不在说明,有需要可查询其他文档

     

    在cmd中 输入 http-server /Users/client/Desktop/flutter_hot_update/flutter_res  -c-1 -g -p 8080,如下图:

     flutter 热更新实现方案—UI资源化(二)中代码说明

     

     

  • 相关阅读:
    CMake命令笔记
    在Win10上,Android Studio检测不到设备的解决方案
    在MFC中使用大漠插件
    Win10更新后,IE和Edge以外的浏览器打开网页速度慢的解决方案
    jsp的自定义标签
    js和JQuery区别
    POI (Apache POI)
    TCP程序设计基础
    传参在mybatis的sql映射文件中正确获取
    I/O(输入/输出)
  • 原文地址:https://www.cnblogs.com/lulushen/p/14498207.html
Copyright © 2011-2022 走看看