androidwebview加载本地js怎么实现交互

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了androidwebview加载本地js怎么实现交互相关的知识,希望对你有一定的参考价值。

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET" />

第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET"/>
参考技术A 可以,只要你是用webview打开的,那么不管事远程还是本地,都可以通过webview与app的本地java代码进行交互。没有任何区别。
1、webview必须设置支持javascript
mWebview.getSettings().setJavaScriptEnabled(true);

2、加进一个回调的代理类JavaScriptInterface,并给它一个调用的名称:ncp
mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp");
final class JavaScriptInterface

public int callOnJs()

return 1000;


public void callOnJs2(String mode)
//TODO



3、JS页面
<script type="text/javascript">
window.onload = function()
document.getElementById('btn_1').addEventListener('click', onBtnClick, false);
var _int_value = window.ncp.callOnJs();
alert("get int from java:" + _int_value );

function onBtnClick()
window.ncp.callOnJs2("click");

</script>
接下来就可以调用js方法了,
1、Java调用js方法
mWebView.loadUrl("javascript:onSaveCallback()");

2、JS访问java方法

window.ncp.callOnJs2("click");本回答被提问者采纳

android中webview 怎么实现网页加载时显示加载进度

方法一:可以在WebView上面放一个进度条,加载webView时显示出来,然后webView里面有加载回调的方法,判断状态码如果是200则隐藏即可。
方法二:在webview里面加进度条
参考技术A 可以在第一次加载进度达到百分之百时重新加载里一个网页,使用标识可以判断第一次加载,WebView中方法获取加载进度。。。本回答被提问者采纳

以上是关于androidwebview加载本地js怎么实现交互的主要内容,如果未能解决你的问题,请参考以下文章

android中webview 怎么实现网页加载时显示加载进度?

android中webview 怎么实现网页加载时显示加载进度

android中webview 怎么实现网页加载时显示加载进度

AndroidWebView的Js对象注入,使用场景是怎样的?

android webview加载本地js,执行js方法undefined

android webview加载本地js,执行js方法undefined