Flutter webview with custom javascriptInterfaceAdapter or invoke JS using webview controller(使用自定义的javascriptInterfaceAdapter调整Webview或使用Webview控制器调用JS)
本文介绍了使用自定义的javascriptInterfaceAdapter调整Webview或使用Webview控制器调用JS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个旧的Java项目,它在Andorid Webview中使用addJava脚本接口执行
mWebView.addJavascriptInterface(new JavascriptAdapter(), "AndroidFunctions");
JavascriptAdapter
类中有几个@JavascriptInterface
函数。作为示例
class JavascriptAdapter {
@JavascriptInterface
getMacAddress(){
DeviceInfo deviceInfo = new DeviceInfo(activity);
return deviceInfo.getMacAddress();
}
}
现在,在Android应用程序中打开Webview后,使用JS可以这样访问该功能-
var strMacAddress = AndroidFunctions.getMACAddress();
现在我想在扑翼上实现这一点。为此,我使用了AppWebview插件中的Ffltter。
另外,我也尝试过fltter_webview、WKWebview。
推荐答案
请查看thisInAppWebView文档。
JavScriptInterface
通常用于从Webview调用本机方法。我假设网页调用了该方法,因此,您必须返回文档中显示的Mac地址。但您需要通过将此示例(在文档中提供)添加到您的网页源代码中来更改调用Ffltter方法的方式。
<script>
window.addEventListener("flutterInAppWebViewPlatformReady", function(event) {
window.flutter_inappwebview.callHandler('handlerFoo')
.then(function(result) {
// print to the console the data coming
// from the Flutter side.
console.log(JSON.stringify(result));
window.flutter_inappwebview
.callHandler('handlerFooWithArgs', 1, true, ['bar', 5], {foo: 'baz'}, result);
});
});
</script>
这篇关于使用自定义的javascriptInterfaceAdapter调整Webview或使用Webview控制器调用JS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用自定义的javascriptInterfaceAdapter调整Webview或使用Webview控制器调用JS


猜你喜欢
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Flexslider 箭头未正确显示 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06