如何在Flutter WebView中注入简单的代码?

问题描述 投票:0回答:1

您好,我是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);

            },
      ),
          ),
    );
  }
}
flutter flutter-layout flutter-dependencies
1个回答
0
投票

您可以尝试

flutterWebviewPlugin.evalJavascript('alert("Hello World")')

[请记住,evalJavascript()取代了JS而不是HTML,所以您不能像这样使用

flutterWebviewPlugin.evalJavascript('<script language="JavaScript" type="text/javascript">alert("Hello World")</script>')
© www.soinside.com 2019 - 2024. All rights reserved.