Flutter for WebでWebビューを表示しようとしていますが、次のエラーが発生しました。
PlatformException(Unregistered factory, No factory registered for viewtype 'plugins.flutter.io/webview', null)
Flutter WebでWebViewを表示する方法はありますか?
@ mohamed-salahによる回答は役に立ちますが、画面にロードシンボルしか表示されませんでした。 webview
ウィジェット内にWillPopScope
を置く必要があります。次のコードを使用して、webview
を適切にロードします-
pubspec.yaml
依存関係を追加
flutter_webview_plugin: ^0.3.9+1 // replace with latest version
StatefulWidget
クラスでは、次のコードを使用します-
class _WebViewLoadingState extends State<Details> {
final _webViewPlugin = FlutterWebviewPlugin();
@override
void initState() {
// TODO: implement initState
super.initState();
// on pressing back button, exiting the screen instead of showing loading symbol
_webViewPlugin.onDestroy.listen((_) {
if (Navigator.canPop(context)) {
// exiting the screen
Navigator.of(context).pop();
}
});
}
@override
Widget build(BuildContext context) {
// WillPopScope will prevent loading
return WillPopScope(
child: WebviewScaffold(
url: "https://www.google.com",
withZoom: false,
withLocalStorage: true,
withJavascript: true,
appCacheEnabled: true,
appBar: AppBar(
title: Text("Browser"),
),
),
onWillPop: () {
return _webViewPlugin.close();
}
);
}
}
このパッケージを使用できます: https://pub.dev/packages/flutter_webview_plugin
そしてここにあなたが使用できる実用的な例があります:
import 'package:flutter/material.Dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.Dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var title = 'some title';
return MaterialApp(
title: title,
home: WebviewScaffold(
url: "yourwebsite.com",
withZoom: false,
withLocalStorage: true,
));
}
}