Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Fridayfive/flutter-presentation
一个支持 Android端的双屏插件,开发者在双屏场景中使用flutter开发双屏的UI
https://github.com/Fridayfive/flutter-presentation
Last synced: about 2 months ago
JSON representation
一个支持 Android端的双屏插件,开发者在双屏场景中使用flutter开发双屏的UI
- Host: GitHub
- URL: https://github.com/Fridayfive/flutter-presentation
- Owner: Fridayfive
- License: other
- Created: 2021-03-30T09:52:59.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-03-31T03:21:35.000Z (over 3 years ago)
- Last Synced: 2024-06-11T04:32:45.465Z (3 months ago)
- Language: Java
- Size: 350 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome - Fridayfive/flutter-presentation - 一个支持 Android端的双屏插件,开发者在双屏场景中使用flutter开发双屏的UI (Java)
README
# presentation
一个支持 Android端的双屏插件,开发者在双屏场景中使用flutter开发双屏的UI
## 功能列表
支持屏幕信息获取、副屏视图嵌入、主屏副屏切换、主屏副屏的通信
### 安装
---
添加依赖 pubspec.yaml
```
dependencies:
presentation: "^1.0.0"```
注:还没上传完...依赖用git依赖吧 这个google验证就是跟我过不去呗
### 使用
---
`import 'package:presentation/presentation.dart';`
初始化:在项目的入口widget或者在main中进行初始化
```
Presentation presentation = Presentation.getInstance();
presentation.init();
```注:init方法只需要调用一次即可
获取屏幕信息
```
Map res = await presentation.getDisNum();
```设置屏幕画面:传入第一个参数为设置屏幕的id,第二个参数为flutter端显示页面的路由,成功返回true失败返回false
```
bool res = await presentation.setContentView(1, "TestPage");
```关闭双屏显示
```
presentation.close()
```屏幕间消息通信
1. 注册通信method监听消息
```
//在wideget init生命周期中注册一个streamCotroller用于在native返回数据后监听返回的数据,第一个注册的是stream唯一method id,在接收到native数据后会根据methodId返回给相应注册的页面
//第一个页面
@override
void initState() {
// TODO: implement initState
presentation = Presentation.getInstance();
presentation.registerListener("page1", streamController);
streamController.stream.listen((event) {
});
super.initState();
}
//第二个页面
@override
void initState() {
// TODO: implement initState
presentation = Presentation.getInstance();
presentation.init();
presentation.registerListener("page2", streamController);
streamController.stream.listen((event) {
});
super.initState();
}```
2. 通过method发布消息
```
presentation.subscribeMsg("page2", {"value": "test"})
```