tablet-app/lib/Screens/Web/web_view.dart
2021-08-24 20:21:19 +02:00

49 lines
1.4 KiB
Dart

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:managerapi/api.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebViewWidget extends StatefulWidget {
final SectionDTO section;
WebViewWidget({this.section});
@override
_WebViewWidget createState() => _WebViewWidget();
}
class _WebViewWidget extends State<WebViewWidget> {
WebView _webView;
WebDTO webDTO;
@override
void initState() {
print(widget.section.data);
webDTO = WebDTO.fromJson(jsonDecode(widget.section.data));
print(webDTO);
super.initState();
_webView = WebView(
initialUrl: webDTO.source_, //"https://my.matterport.com/show/?m=k8bvdezfHbT"
javascriptMode: JavascriptMode.unrestricted,
navigationDelegate: (NavigationRequest request) {
print(request.url);
print(webDTO.source_);
if (request.url != webDTO.source_) {
print('blocking navigation to $request}');
return NavigationDecision.prevent;
}
print('allowing navigation to $request');
return NavigationDecision.navigate;
}
);
}
@override
void dispose() {
_webView = null;
super.dispose();
}
@override
Widget build(BuildContext context) => webDTO.source_ != null && webDTO.source_.length > 0 ? _webView : Center(child: Text("La page internet ne peut pas être affichée, l'url est incorrecte ou vide"));
}