如何在flutter_webview_plugin中运行JavaScript?我尝试了这个:
onPressed: () {
flutterWebviewPlugin.evalJavascript('<script language="JavaScript" type="text/javascript">alert("Hello World")</script>');
},
字符串
但什么也没发生。
我以为flutterWebviewPlugin.evalJavascript
可以在Webview中运行JavaScript。我做错了什么吗?
7条答案
按热度按时间s71maibg1#
字符串
需要JavaScript,而不是HTML
型
是HTML。
尝试
型
bvjxkvbb2#
你可以试试我的插件flutter_inappwebview,这是一个Flutter插件,允许你添加内联WebViews或打开应用内浏览器窗口,并有很多事件,方法和选项来控制WebViews。
要运行一些js,您可以使用:用途:
Future<dynamic> evaluateJavascript({@required String source})
:在WebView中计算JavaScript代码并返回计算结果。Future<void> injectJavascriptFileFromUrl({@required String urlFile})
:从定义的URL将外部JavaScript文件插入WebView。Future<void> injectJavascriptFileFromAsset({@required String assetFilePath})
:将一个JavaScript文件从flutter assets目录插入到WebView中(更多关于如何从assets文件夹加载文件的信息,请参见此处)。完整示例:
字符串
egmofgnx3#
这就是Webview小部件的外观
字符串
在代码中的任何地方使用
webViewController
3phpmpom4#
好吧,没有发生任何事情,因为flutter webview不支持JavaScript alert功能。尝试编写一个javascript函数,更改HTML元素的innerText的值,然后使用.evalJavascript调用该函数以查看结果。
o2rvlv0m5#
我使用webview_flutter的onPressed函数的最佳方法。使用“runJavascript”或"evaluateJavascript“或”runJavascript Returning Result“:
字符串
6psbrbz96#
我已经调试了
flutter_webview_plugin
的iOS部分。iOS部分
发现它与iOS原生部件iOS WKWebView not showing javascript alert() dialog有关。
实现代码的好例子是gist。
我已经为此创建了一个fix。
临时解决方案
您可以使用
字符串
这是在合并PR之前
pubspec.yaml
中的临时值。gcxthw6b7#
我通过将我的自定义JavaScript函数注册到全局窗口对象来实现这一点。
字符串
然后我以这种方式调用flutter_webview小部件:
型