- 同步商城 H5 登录态与原生 token - 完善商城/原生 tab 切换、动画及返回交互 - 修复七鱼客服键盘避让和状态栏恢复 - 调整开屏跳过按钮与登录入口交互
29 lines
775 B
Dart
29 lines
775 B
Dart
import 'dart:async';
|
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
|
|
class JsEvent {
|
|
const JsEvent(this.method, [this.args]);
|
|
|
|
final String method;
|
|
final List<dynamic>? args;
|
|
}
|
|
|
|
class WebReloadController {
|
|
final _controller = StreamController<JsEvent>.broadcast();
|
|
|
|
Stream<JsEvent> get stream => _controller.stream;
|
|
void callEvent(JsEvent event) => _controller.add(event);
|
|
Future<void> dispose() => _controller.close();
|
|
}
|
|
|
|
final webReloadControllerProvider = Provider<WebReloadController>((ref) {
|
|
final controller = WebReloadController();
|
|
ref.onDispose(() => unawaited(controller.dispose()));
|
|
return controller;
|
|
});
|
|
|
|
final webReloadPProvider = StreamProvider.autoDispose<JsEvent>((ref) {
|
|
return ref.watch(webReloadControllerProvider).stream;
|
|
});
|