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

增加方法

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