上一篇文章说道通过EventChannel使得Flutter监听Android原生的信息流变化,这种EventChannel需要我们在MainActivity中手动注册插件
通过StreamController.broadcast可以不用在MainActivity中手动注册插件(如果是在编写一个插件的话),而是通过真正的插件形式使得Flutter具有监听Android原生的能力
1.Flutter插件代码:注册并声明StreamController对象,并实现MethodChannel的setMethodCallHandler方法,
import 'dart:async';
import 'package:flutter/services.dart';
class GetTimePlugin {
static const MethodChannel _channel = const MethodChannel('get_android_time');
StreamController<String> _responseGetTime = new StreamController.broadcast();
Stream<String> get responseGetTime => _responseGetTime.stream;
SsoLoginPlugin() {
_channel.setMethodCallHandler(_handler);
}
Future<dynamic> _handler(MethodCall methodCall) {
if (methodCall.method == "onGetTimeCallback") {
if ("success" == methodCall.arguments["result"]) {
String time = methodCall.arguments["time"];
_responseGetTime.add(time);
} else {
_responseGetTime.

本文介绍了如何在Flutter插件中使用StreamController,避免在MainActivity中手动注册,实现在Android原生与Flutter之间的双向通信。通过创建StreamController,Flutter能够实时接收Android端的数据变化,简化了跨平台通信的流程。
最低0.47元/天 解锁文章
1957

被折叠的 条评论
为什么被折叠?



