提交 f4db7484 authored 作者: MrQi's avatar MrQi

增加方法

上级 14ed110b
......@@ -51,14 +51,16 @@ class CustomController extends ChangeNotifier {
String? _title;
AppBar? get appBar => _title == null
? null
: AppBar(
title: ListenableBuilder(
listenable: this,
builder: (context, child) {
return Text(_title!, style: _appBarTextStyle);
},
),
);
: _isHideNavigationBar
? null
: AppBar(
title: ListenableBuilder(
listenable: this,
builder: (context, child) {
return Text(_title!, style: _appBarTextStyle);
},
),
);
Future<bool> setTitle(String title) async {
if (!_customWebViewState.mounted) {
return Future.value(false);
......@@ -82,6 +84,31 @@ class CustomController extends ChangeNotifier {
}
}
bool _isHideNavigationBar = false;
FutureOr<bool> hideNavigationBar() {
if (!_customWebViewState.mounted) {
return Future.value(false);
}
if (_isHideNavigationBar) {
return Future.value(true);
}
_isHideNavigationBar = true;
notifyListeners();
return Future.value(true);
}
FutureOr<bool> showNavigationBar() {
if (!_customWebViewState.mounted) {
return Future.value(false);
}
if (!_isHideNavigationBar) {
return Future.value(true);
}
_isHideNavigationBar = false;
notifyListeners();
return Future.value(true);
}
/// 外部访问JavaScriptChannel的接口
final List<JavaScriptChannel> _javaScriptChannels = [];
List<JavaScriptChannel>? get javaScriptChannels => _javaScriptChannels;
......@@ -97,4 +124,14 @@ class CustomController extends ChangeNotifier {
controller.reload();
return Future.value(true);
}
Future<bool> removeJavaScriptChannel(String name) async {
if (_javaScriptChannels.where((element) => element.name == name).isEmpty) {
return Future.value(false);
}
_javaScriptChannels.removeWhere((element) => element.name == name);
controller.removeJavaScriptChannel(name);
controller.reload();
return Future.value(true);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论