[英]How to add JavaScriptInterface in Flutter WebView or InAppWebView?
In Android I can add javascript interface:在 Android 中,我可以添加 javascript 接口:
class JsInterface(private val onClose: () -> Unit) {
@android.webkit.JavascriptInterface
fun close() {
onClose()
}
}
...
addJavascriptInterface(JsInterface { this@WebViewActivity.finish() }, "client")
How can I do the same in Flutter WebView or InAppWebView or other packages?我如何在 Flutter WebView 或 InAppWebView 或其他包中做同样的事情?
I suggest you to read this article, where they take a closer look at flutter_inappwebview
.我建议你阅读这篇文章,在那里他们仔细看看
flutter_inappwebview
。 But try this code example for quick answer:但是试试这个代码示例以获得快速答案:
InAppWebView(
initialUrl: 'url',
onWebViewCreated: (controller) =>
control.webController = controller
..addJavaScriptHandler(
handlerName: 'serverSideJsFuncName',
callback: (data) {
// Catch and handle js function
},
),
)
On the other hand, if you want to update server side JavaScript you can do it via InAppWebViewController
like this:另一方面,如果你想更新服务器端 JavaScript,你可以通过
InAppWebViewController
这样做:
Future<void> evalJs(dynamic param) async {
await webController.evaluateJavascript(
source: "window.someFuncName( '$param ');");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.