Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/zhaomenghuan/flutter-mini-program

A Flutter's mini-program development framework by parsing HTML、CSS and JS / Dart.
https://github.com/zhaomenghuan/flutter-mini-program

css dart dynamic flutter flutter-view flutter-widgets html htmlview js miniprogram

Last synced: 9 days ago
JSON representation

A Flutter's mini-program development framework by parsing HTML、CSS and JS / Dart.

Lists

README

        

# Flutter 小程序

一个基于 Flutter 框架的小程序开发框架。通过解析 HTML 标签 和 CSS 样式,用于开发小程序应用,项目灵感来自 [FlutterHtmlView](https://github.com/PonnamKarthik/FlutterHtmlView)。

## 特性

- 将 html 标签转换为 Flutter 组件
- 支持使用 css 样式渲染 Flutter 组件
- 支持模板编译及数据绑定

## 框架

### 视图层

框架的视图层由 html 与 css 编写,通过 .html 文件定义页面的视图层,由组件来进行展示。将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。组件(Component)是视图的基本组成单元。

```html


{{message}}

evaluateJavascript

Page({
config: {
"navigationBarTitleText": "Flutter MiniProgram - JS-API"
},
data: {
message: "Hello Flutter's MiniProgram"
},
onLoad() {

},
methods: {
onEvaluateJavascript: function() {
log('onEvaluateJavascript');
}
}
});

.container {
padding: 10px;
}
.m-10 {
margin: 10px;
}

```

### 逻辑层

小程序开发框架的逻辑层使用 JS / Dart 语法进行开发,通过 Dart / Flutter 插件完成视图逻辑的组织及原生插件调用。逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。

```dart
Page({
config: {
"navigationBarTitleText": "Flutter MiniProgram - JS-API"
},
data: {
message: "Hello Flutter's MiniProgram"
},
onLoad() {

},
methods: {
onEvaluateJavascript: function() {
log('onEvaluateJavascript');
}
}
});
```

## 组件

### 支持的组件

- view: 视图容器
- icon: 图标
- text: 文本
- br: 换行符
- hr: 水平分隔线
- p: 段落
- h1 ~ h6: 标题
- a: 链接
- button: 按钮
- input: 输入框
- checkbox: 复选框
- switch: 单选开关
- slider: 滑块
- image: 图片
- video: 视频
- table: 表格
- list-view: 列表
- web-view: 网页容器

### 视图

视图容器,相当于 Web 的 div 标签或者 React Native 的 View 组件。

#### API

| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| class | String | | 自定义样式名 |
| style | String | | 内联样式 |
| onTap | EventHandle | | 点击事件 |
| onLongTap | EventHandle | | 长按事件 |

### Button

按钮。

#### API

| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| size | String | default | 按钮的大小 |
| type | String | default | 按钮的样式类型 |
| plain | Boolean | false | 按钮是否镂空,背景色透明 |
| disabled | Boolean | false | 是否禁用 |
| loading | Boolean | false | 名称前是否带 loading 图标 |

#### 示例

```html

按钮

default


primary


warn

disabled 状态

default


primary


warn

loading 状态

default


primary


warn

plain 状态

default


primary


warn

按钮大小

default


primary


warn

```

### Switch

开关选择器。

#### API

| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| checked | Boolean | | 是否选中 |
| disabled | Boolean | | 禁用状态 |
| size | double | | 自定义大小 |
| color | String | | 自定义颜色 |
| onChange | EventHandle | | checked 改变时触发 |

### 文本输入框

文本输入框, 相当于 Web 的 input 标签 或者 iOS 中的 UITextField 和 Android 中的 EditText。

| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| type | String | | input 的类型 |
| placeholder | String | | 占位符 |
| focus | Boolean | false | 获取焦点 |

```html

这是一个可以自动聚焦的input:

数字键盘:

```

### 图片

API

| 属性名 | 类型 | 默认值 | 描述 |
|----------|:-------------:|------:|:-------------:|
| class | String | | 自定义样式名 |
| style | String | | 内联样式 |
| src | String | | 图片路径 |
| fit | String | | 图片裁剪、缩放的模式, fill | contain | cover | fitWidth | fitHeight | none | scaleDown |

```html

网络图片:


本地图片:


图片裁剪模式 fit = "fill":


```