Flutter SDUI框架插件mirai的使用_mirai是一个SDUI框架 ,可以使用JSON实时动态构建UI

发布于 1周前 作者 yibo5220 最后一次编辑是 5天前 来自 Flutter

Flutter SDUI框架插件mirai的使用

但根据其提供的文档和示例代码,我们可以了解这是一个强大的服务器驱动UI框架(Server-Driven UI, SDUI),允许您使用JSON在实时构建美丽且跨平台的应用程序,而无需重新部署应用程序即可进行设计更改。

项目信息

Mirai

pub package License: MIT GitHub Stars Netlify Status

简介

Mirai 是一个用于Flutter的强大SDUI框架,它使您可以使用JSON实时动态构建UI,支持移动、Web或桌面应用程序的跨平台开发,并简化了UI交付过程,增强了灵活性。

特性包括:

  • 🛠️ 动态构建UI:通过JSON配置即时更新应用程序的UI。
  • 🌍 跨平台:一次编写,任意渲染——Flutter完成其余的工作。
  • ⚡ 快速迭代:在服务器上进行更改并实时查看效果。

安装

首先,在pubspec.yaml文件中添加Mirai。

通过以下命令安装插件:

flutter pub add mirai

使用方法

初始化Mirai

main.dart中导入Mirai包并在main函数中初始化它。

import 'package:mirai/mirai.dart';

void main() async {
  await Mirai.initialize();

  runApp(const MyApp());
}

您还可以指定自定义解析器和Dio实例:

void main() async {
  final dio = Dio();

  await Mirai.initialize(
    parsers: const [
      ExampleScreenParser(),
    ],
    dio: dio,
  );

  runApp(const MyApp());
}

替换MaterialApp为MiraiApp

最后,将您的MaterialApp替换为MiraiApp,并通过调用Mirai.fromJson(json, context)来加载您的JSON数据。

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MiraiApp(
      title: 'Mirai Demo',
      homeBuilder: (context) => Mirai.fromJson(json, context),
    );
  }
}

示例代码

这里是一个简单的表单界面的例子。

JSON配置

这是表单的JSON配置,包含文本输入框、密码输入框以及提交按钮等组件。

{
  "type": "scaffold",
  "appBar": {
    "type": "appBar",
    "title": {
      "type": "text",
      "data": "Text Field",
      "style": {
        "color": "#ffffff",
        "fontSize": 21
      }
    },
    "backgroundColor": "#4D00E9"
  },
  "backgroundColor": "#ffffff",
  "body": {
    "type": "singleChildScrollView",
    "child": {
      "type": "container",
      "padding": {
        "left": 12,
        "right": 12,
        "top": 12,
        "bottom": 12
      },
      "child": {
        "type": "column",
        "mainAxisAlignment": "center",
        "crossAxisAlignment": "center",
        "children": [
          // ... [省略部分重复代码] ...
          {
            "type": "elevatedButton",
            "child": {
              "type": "text",
              "data": "Submit"
            },
            "style": {
              "backgroundColor": "#4D00E9",
              "padding": {
                "top": 8,
                "left": 12,
                "right": 12,
                "bottom": 8
              }
            },
            "onPressed": {}
          }
        ]
      }
    }
  }
}

Flutter代码

下面是与上述JSON配置对应的Flutter代码片段。

import 'package:flutter/material.dart';
import 'package:mirai/mirai.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MiraiApp(
      title: 'Mirai Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Mirai.fromNetwork(
        MiraiRequest(
          url: _url, // 这里应该是你的JSON文件地址
          method: Method.get,
        ),
      ),
    );
  }
}

注意:Mirai提供了多种方法来解析JSON到Flutter小部件。你可以使用Mirai.fromNetwork()Mirai.fromJson()Mirai.fromAsset()

以上就是关于这个所谓“未知功能”的插件Mirai的基本介绍和使用方法。如果您有兴趣了解更多,请访问Mirai Playground尝试在线实验,或者阅读官方文档获取详细指南和更多例子。


更多关于Flutter SDUI框架插件mirai的使用_mirai是一个SDUI框架 ,可以使用JSON实时动态构建UI的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter SDUI框架插件mirai的使用_mirai是一个SDUI框架 ,可以使用JSON实时动态构建UI的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成和使用第三方插件时,了解插件的具体功能和API是非常重要的。由于mirai插件被描述为具有“未知功能”,我无法提供确切的功能描述,但我可以展示如何在Flutter项目中集成和使用一个假设的第三方插件。

以下是一个假设的Flutter项目结构,以及如何使用一个名为mirai的插件(假设它已发布在pub.dev上或你本地已有其源代码)。请注意,由于mirai的具体功能未知,下面的代码将基于一个假设的插件接口。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加mirai插件的依赖。假设mirai已经发布在pub.dev上,你可以这样添加:

dependencies:
  flutter:
    sdk: flutter
  mirai: ^x.y.z  # 替换为实际的版本号

然后运行flutter pub get来安装依赖。

2. 导入插件

在你的Dart文件中导入mirai插件:

import 'package:mirai/mirai.dart';

3. 使用插件

由于mirai的具体功能未知,我将提供一个假设的使用案例。假设mirai插件有一个名为performUnknownAction的方法,该方法接受一个参数并返回一个Future。

import 'package:flutter/material.dart';
import 'package:mirai/mirai.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Mirai Plugin Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String result = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Mirai Plugin Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Result: $result',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _performMiraiAction,
              child: Text('Perform Mirai Action'),
            ),
          ],
        ),
      ),
    );
  }

  Future<void> _performMiraiAction() async {
    try {
      // 假设 performUnknownAction 是 mirai 插件中的一个方法,接受一个字符串参数
      String actionResult = await Mirai.performUnknownAction('example_parameter');
      setState(() {
        result = actionResult;
      });
    } catch (e) {
      setState(() {
        result = 'Error: ${e.toString()}';
      });
    }
  }
}

注意事项

  1. 实际插件接口:上面的代码是基于假设的mirai插件接口。你需要查阅mirai插件的实际文档来了解其提供的方法和属性。
  2. 错误处理:在实际应用中,添加适当的错误处理是非常重要的,以确保应用的健壮性。
  3. 插件版本:确保你使用的是与Flutter SDK兼容的插件版本。

由于mirai插件的具体功能未知,上面的代码仅作为如何在Flutter项目中集成和使用第三方插件的一个示例。如果你有更具体的关于mirai插件的信息或需求,请查阅其官方文档或联系插件的维护者以获取更多帮助。

回到顶部