外出先でフラッター学習を行うのは初めてです。WebView の履歴がなくなったら、戻るボタンでアプリを閉じようとしています。たとえば、WebView アプリでは、最初の URL は google.com で、yahoo.com に移動します。戻るボタンを押すと google.com に戻り、もう一度押すとアプリは何もしません。より多くの歴史。Flutter WebView プラグイン ページで CanGoBack() 関数を試しましたが、vscode でエラーが発生します。それを実装する方法がわかりません。
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
class WebviewInFlutter extends StatefulWidget {
WebviewInFlutter({Key key}) : super(key: key);
@override
_WebviewInFlutterState createState() => _WebviewInFlutterState();
}
class _WebviewInFlutterState extends State<WebviewInFlutter> {
final FirebaseMessaging _messaging = FirebaseMessaging();
@override
void initState(){
super.initState();
_messaging.getToken().then((token) {
print(token);
});
_messaging.configure(
onMessage: (Map<String, dynamic> message) async{
print('on message $message');
},
onResume: (Map<String, dynamic> message) async{
print('on resume $message');
},
onLaunch: (Map<String, dynamic> message) async{
print('on launch $message');
},
);
_messaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true));
}
final flutterWebviewPlugin = new FlutterWebviewPlugin();
@override
Widget build(BuildContext context) {
return WebviewScaffold(
url: 'https://google.com',
hidden: true,
appCacheEnabled: true,
withJavascript: true,
withLocalStorage: true,
appBar: AppBar(
actions: <Widget>[
IconButton(
icon: Icon(Icons.refresh, color: Color.fromRGBO(255, 255, 255, 1.0),),
onPressed: () => flutterWebviewPlugin.reload(), // this is reloading the url that was provided to webview, not the current URL.
)
],
elevation: 1.0,
centerTitle: true,
title: Text("Google Mobile")
),
);
}
}