Flutter高性能渲染插件Kraken的使用
Flutter高性能渲染插件Kraken的使用
Kraken

快速尝试
安装Kraken CLI(仅限macOS和Linux)
$ npm i @openkraken/cli -g
使用Kraken打开
$ kraken run https://raw.githubusercontent.com/openkraken/kraken/master/kraken/example/assets/bundle.js
为什么选择Kraken
快速开发 🎉
与Web标准兼容意味着你无需更改现有的技术栈。
const text = document.createTextNode('Hello World!');
document.body.appendChild(text);
跨平台 ⚛️
无缝集成到Flutter,支持Web、移动(iOS、Android)和桌面(MacOS、Linux、Windows)。
高性能 🚀
提供接近原生的性能,如导航、动画和无限滚动列表。
Flutter版本范围
仅对稳定版的Flutter进行了全面测试。
Kraken 版本 | Flutter 版本 |
---|---|
>= 0.7.0 < 0.8.0 | 1.22.0 ~ 1.22.6 |
>= 0.8.0 < 0.10.0 | 2.2.0 ~ 2.2.3 |
>= 0.10.0 < 0.11.0 | 2.5.0 ~ 2.5.3 |
>= 0.11.0 | 2.8.0 ~ 2.8.1 |
贡献
通过贡献Kraken,您同意您的贡献将根据其Apache-2.0许可证进行授权。
阅读我们的贡献指南,让我们一起构建更好的Kraken项目。
感谢所有为Kraken做出贡献的人!
版权所有 © 2019年至今,Kraken作者。
示例代码
/*
* Copyright (C) 2022-present The Kraken authors. All rights reserved.
*/
import 'package:flutter/material.dart';
import 'package:kraken/kraken.dart';
import 'package:kraken/devtools.dart';
import 'package:kraken_websocket/kraken_websocket.dart';
void main() {
KrakenWebsocket.initialize();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// 这个widget是你的应用的根。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Kraken浏览器',
home: MyBrowser(),
);
}
}
class MyBrowser extends StatefulWidget {
MyBrowser({Key? key, this.title}) : super(key: key);
// 这个widget是你的应用的主页。它是有状态的,意味着它有一个状态对象(定义在下面),这些状态会影响它的外观。
// 这个类是状态的配置。它保存了由父组件(在这个例子中是App widget)提供的值(在这个例子中是标题)并用于状态的构建方法。Widget子类中的字段总是标记为"final"。
final String? title;
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyBrowser> {
OutlineInputBorder outlineBorder = OutlineInputBorder(
borderSide: BorderSide(color: Colors.transparent, width: 0.0),
borderRadius: const BorderRadius.all(
Radius.circular(20.0),
),
);
[@override](/user/override)
Widget build(BuildContext context) {
final MediaQueryData queryData = MediaQuery.of(context);
final TextEditingController textEditingController = TextEditingController();
Kraken? _kraken;
AppBar appBar = AppBar(
backgroundColor: Colors.black87,
titleSpacing: 10.0,
title: Container(
height: 40.0,
child: TextField(
controller: textEditingController,
onSubmitted: (value) {
textEditingController.text = value;
_kraken?.load(KrakenBundle.fromUrl(value));
},
decoration: InputDecoration(
hintText: '输入URL',
hintStyle: TextStyle(color: Colors.black54, fontSize: 16.0),
contentPadding: const EdgeInsets.all(10.0),
filled: true,
fillColor: Colors.grey,
border: outlineBorder,
focusedBorder: outlineBorder,
enabledBorder: outlineBorder,
),
style: TextStyle(color: Colors.black, fontSize: 16.0),
),
),
);
final Size viewportSize = queryData.size;
return Scaffold(
appBar: appBar,
body: Center(
child: _kraken = Kraken(
devToolsService: ChromeDevToolsService(),
viewportWidth: viewportSize.width - queryData.padding.horizontal,
viewportHeight: viewportSize.height - appBar.preferredSize.height - queryData.padding.vertical,
bundle: KrakenBundle.fromUrl('assets:assets/bundle.html'),
),
));
}
}
更多关于Flutter高性能渲染插件Kraken的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter高性能渲染插件Kraken的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Kraken 是由阿里巴巴团队开发的一个基于 Flutter 的高性能渲染引擎,旨在通过 JavaScript 来渲染视图,同时利用 Flutter 的高性能渲染能力。Kraken 允许开发者使用类似于 Web 开发的方式来构建跨平台的移动应用,同时保持接近原生性能的渲染速度。
Kraken 的核心特性:
- 基于 Flutter:Kraken 利用 Flutter 的渲染引擎,提供高性能的渲染能力。
- JavaScript 运行时:支持使用 JavaScript 来编写业务逻辑和 UI 渲染逻辑。
- 跨平台:与 Flutter 一样,Kraken 支持 iOS、Android 和 Web 平台。
- 高性能:通过优化渲染流程,Kraken 提供了接近原生应用的性能。
- 灵活的 UI 构建:开发者可以使用类似 Web 的方式(HTML/CSS/JavaScript)来构建 UI。
- 生态兼容:Kraken 支持部分 Web 标准 API,开发者可以直接使用 Web 生态中的工具和库。
Kraken 的基本使用
1. 安装 Kraken CLI
Kraken 提供了一个命令行工具来初始化和管理项目。首先需要安装 Kraken CLI:
npm install -g @kraken/cli
2. 创建 Kraken 项目
使用 Kraken CLI 创建一个新的项目:
kraken init my_kraken_app
cd my_kraken_app
这将生成一个基本的 Kraken 项目结构,包括 index.js
和 index.html
文件。
3. 编写 Kraken 应用
在 index.html
中编写 HTML 结构,例如:
<!DOCTYPE html>
<html>
<head>
<title>Kraken App</title>
</head>
<body>
<h1>Hello, Kraken!</h1>
<p>This is a Kraken application.</p>
</body>
</html>
在 index.js
中编写 JavaScript 逻辑,例如:
document.querySelector('h1').addEventListener('click', () => {
alert('Hello from Kraken!');
});
4. 运行 Kraken 应用
使用 Kraken CLI 启动应用:
kraken start
这会在默认的浏览器或模拟器中打开应用。
5. 构建 Kraken 应用
当应用开发完成后,可以使用以下命令构建应用:
kraken build