Android WebView 使用笔记

本文探讨了在Android应用中WebView组件与Java代码交互的问题,包括目标SDK版本设置、@JavascriptInterface注解使用、加载页面顺序、JavaScript变量声明方式及对象子方法调用等关键点。同时,还涉及了WebView播放视频、暂停、居中显示内容及拦截Post/Get请求的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WebView 里面的 JavaScript 调用不了 App 里的 Java 接口函数?

Caution:  If you've set your  targetSdkVersion  to 17 or higher,  you must add the @JavascriptInterfaceannotation  to any method that you want available to your JavaScript (the method must also be public). If you do not provide the annotation, the method is not accessible by your web page when running on Android 4.2 or higher.

所以记得在方法前面加“@JavascriptInterface


另外,如果 webview 没加载任何内容,是调用不了 Java 代码里的接口的!

技巧是先加载一个空页面:loadUrl("about:blank"); 又花了不少时间才明白这里。

另外,如果调用  loadUrl 加载一个页面之后,马上又  loadUrl 调用 js ,这里 js 也是调用不到 java 代码里的接口的。


webview 调用 js 也是有技巧的!

  • function func(){...}
  • var func = function(){...}
  • window["func"] = function(){...}

上面三种方式声明的方式,只有第一种方式可以调用,想不明白……

另外,对象的子方法也是调用不了的,继续不解……


其它:

android webView 无法播放视频,无法暂停,继续播放视频问题,无法根据浏览器居中显示内容问题


Android如何拦截WebView之中的Post或者Get请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值