Flutter插件misty的使用方法
Flutter插件misty的使用方法
通过拦截浏览器网络请求,读取本地资源文件,减少网络资源请求来提高网页的开启速度,实现Flutter的原生手势交互的Flutter web preload解决方案。
Misty,如名所示,通过极小的引用实现SPA web项目在Flutter上面享受到小程序般的体验。
Flutter插件misty的使用
1. 导入 (pubspec.yaml)
dependencies:
misty: <latest_version>
2. 启动本地web服务
MistyStartModel mistyStartOption = MistyStartModel(
baseHost: 'https://mistyapp.oss-cn-hangzhou.aliyuncs.com',
options: [
Option(
key: 'misty-app-one',
open: 1,
priority: 0,
version: '202208161155',
),
Option(
key: 'misty-app-two',
open: 1,
priority: 0,
version: '202208151527',
),
],
basics: Basics(
common: Common(
compress: '/common.zip',
version: '202208151527',
),
),
assets: [
{
'misty-app-one': '/misty-app-one/misty-app.zip',
},
{
'misty-app-two': '/misty-app-two/misty-app.zip',
},
],
);
Misty.start(mistyStartOption);
3. 使用
打开程序
Misty.openMisty(context, url);
Flutter调用Js
MistyHandler().callJs('欢迎使用Misty!');
Js挂载事件
function flutterCallJs(param) {
console.log(param);
}
window.flutterCallJs = flutterCallJs;
Js调用Flutter
window.MistyCallFlutter.postMessage('getDataFormFlutter');
/// 监听来自Web的消息
MistyEventController().addEventListener((event) {
print(event);
});
展示
项目设计规划
- ✅ Web资源管理器 (版本管理,资源下载管理)
- ✅ WebView资源和网络代理
- ✅ Flutter与Web项目原生交互
- ☑️ Misty UI框架,帮助快速搭建Misty程序
持续更新
为了保证正常版本更新和迭代,更新迭代的规则如下:
- ⭕ 优先版本开发和修复BUG
- ⭕ 然后是需求榜
- ⭕ 其次是其他定制化
支持 Misty
如果觉得Misty帮助到您,请支持一杯☕呗!
完整示例Demo
import 'package:flutter/material.dart';
import 'package:misty/misty.dart';
import 'package:misty_example/index_page.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
MistyStartModel mistyStartOption = MistyStartModel(
baseHost: 'https://mistyapp.oss-cn-hangzhou.aliyuncs.com',
options: [
Option(
key: 'misty-app-one',
open: 1,
priority: 0,
version: '202208161155',
),
Option(
key: 'misty-app-two',
open: 1,
priority: 0,
version: '202208241529',
),
],
basics: Basics(
common: Common(
compress: '/common.zip',
version: '202208151527',
),
),
assets: [
{
'misty-app-one': '/misty-app-one/misty-app.zip',
},
{
'misty-app-two': '/misty-app-two/dist.zip',
},
],
);
[@override](/user/override)
void initState() {
Misty.start(mistyStartOption);
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Builder(builder: (context) {
return const IndexPage();
}),
);
}
}
更多关于Flutter插件misty的使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复