android - 如何在 Flutter WebView 或 InAppWebView 中添加 JavaScriptInterface?
问题描述
在 Android 中我可以添加 javascript 接口:
class JsInterface(private val onClose: () -> Unit) {
@android.webkit.JavascriptInterface
fun close() {
onClose()
}
}
...
addJavascriptInterface(JsInterface { this@WebViewActivity.finish() }, "client")
如何在 Flutter WebView 或 InAppWebView 或其他包中做同样的事情?
解决方案
我建议你阅读这篇文章,他们仔细研究一下flutter_inappwebview
。但是请尝试此代码示例以获得快速答案:
InAppWebView(
initialUrl: 'url',
onWebViewCreated: (controller) =>
control.webController = controller
..addJavaScriptHandler(
handlerName: 'serverSideJsFuncName',
callback: (data) {
// Catch and handle js function
},
),
)
另一方面,如果你想更新服务器端 JavaScript,你可以这样做InAppWebViewController
:
Future<void> evalJs(dynamic param) async {
await webController.evaluateJavascript(
source: "window.someFuncName( '$param ');");
}
推荐阅读
- python - Wagtail 管理员 - 玩 url
- javascript - jQuery 幻灯片切换动画在调整大小时使其他元素跳跃
- regex - 结合正则表达式以获得路径版本
- paypal - PayPal Rest API - Webhooks / IPN - 是否可以接收 eBay 付款通知?
- c# - 如何设置所有者绘制控件的初始颜色
- file - 在列表框中查看 *.txt 文件
- android - 如何使内容在 webview 中滚动?
- mysql - 在 SQL 上的两列上计数不同
- amazon-ec2 - Ec2 亚马逊虚拟机
- c++ - 创建一个 C 数组包装器(更好的 std::array?)