您好,我是Flutter的新手,目前,我正在制作一个非常简单的应用程序,只是一个WebView。我的问题是如何将这段代码插入Flutter Webview?
footer#footer, div#st_notification_1, #sidebar_box {
display: none!important;
}
The Flutter_webview_pluginhere表示当我试图注入一些自定义代码时,我应该使用此代码:
Future<String> loadJS(String name) async {
var givenJS = rootBundle.loadString('assets/$name.js');
return givenJS.then((String js) {
flutterWebViewPlugin.onStateChanged.listen((viewState) async {
if (viewState.type == WebViewState.finishLoad) {
flutterWebViewPlugin.evalJavascript(js);
}
});
});
}
问题是,我有点把WHERE实际放在我的代码中,并将我的CUSTOM代码放在哪里。下面的代码只是我要注入/应用自定义代码的五个Webview页面之一
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final Completer<WebViewController> _controller =
Completer<WebViewController>();
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: WebView(
initialUrl: 'https://syncshop.online/en/',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
),
),
);
}
}
您可以尝试
flutterWebviewPlugin.evalJavascript('alert("Hello World")')
[请记住,evalJavascript()
取代了JS
而不是HTML
,所以您不能像这样使用
flutterWebviewPlugin.evalJavascript('<script language="JavaScript" type="text/javascript">alert("Hello World")</script>')