1,因为该方法的执行不会使页面刷新,而方法(loadUrl )的执行则会使页面刷新。

2,Android 4.4 后才可使用

public class MainActivity extends Activity {
    WebView webView;
    Button buttonLeft, buttonRight;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = findViewById(R.id.webview);
        buttonLeft = findViewById(R.id.btnLeft);
        buttonRight = findViewById(R.id.btnRight);
        WebSettings webSettings = webView.getSettings();
        //允许使用JS
        webSettings.setJavaScriptEnabled(true);
        // 设置允许JS弹窗
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webView.loadUrl("file:///android_asset/index.html");
        buttonLeft.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                webView.post(new Runnable() {
                    @Override
                    public void run() {
                        webView.evaluateJavascript("javascript:callJS()", new ValueCallback<String>() {
                            @Override
                            public void onReceiveValue(String s) {
                                //将button显示的文字改成JS返回的字符串
                                buttonLeft.setText(s);
        webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
                AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
                b.setTitle("alert1");
                b.setMessage(message);
                b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        result.confirm();
                b.setCancelable(false);
                b.create().show();
                return true;

转载于:android通过WebView的evaluateJavascript()调用JS_Luckie stone的博客-CSDN博客 

原文链接:https://blog.csdn.net/suyimin2010/article/details/85912021 转载:Android:你要的WebViewJS 交互方式 都在这里了 前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 上述功能是由AndroidWebView实现的,其中涉及到Android客户端与Web网页交互的实现 今天我将全面介绍Android通过WebViewJS交互的全面方式 阅读本文前请先阅读 跳槽季整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。本文在开源项目:【 现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!Android架构视频+BAT面试专题PDF+学习笔记,或者私信回复【技能提升】即可获取! WebView是一个基于webkit引擎、展现web页面的控件。AndroidWebview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。显示和渲染web界面直接使用html文件(网络上或者本地asset)作为布局可与JavaScript交互调用WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载、渲染、页面交互进行强大的处理。 一、一些疑问?1. Android和H5 交互是什么意思? Android利用WebView加载网页,然后网页中的JavaScript 和 Android原生的Java 互相调用。 为什么要说成和H5交互呢,这只是一种噱头。 2. 为什么学Android也要学H5 Android很软件都有内嵌H5,QQ 微信 微博 淘宝and so on 3. 有什么用处 优势 能同时应用在 andro //调用H5 Web网页中的Javascript函数add()计算a与b的和。 web.evaluateJavascript("toggle()", new ValueCallback<String>() { //Javascript返回add()函数的计算结果。 @Overr... android 4.4以下跟H5交互需要调用webview的loadUrl(javascript:方法名(参数))来实现调用js方法。如果需要网页获取返回值还需要网页调用安卓 @JavaScriptInterface 注解的方法才可以。 Android 4.4以上调用webview.evaluateJavascript(javascript:方法名(参数),new ValueCallback{... 先来说说什么是JS交互:说的俗一点就是通过我们项目中的控件来调用HTML里的JS代码,也可以通过JS调用项目中的代码。AndroidJS之间的桥梁就是WebView了,我们是通过WebView来实现他们的相互调用Android调用Js代码:Android调用Js代码有两种方式1)通过WebView的loadUrl ()调用2)通过WebViewevaluateJavascript ()调用... 有两个参数。其中 object 即需要提供给 js 调用的对象。在 Android 4.1.2 (API 16) 以下时,js 可以调用该对象的所有公开方法;在 Android 4.2 (API 17)以上时, js 只能调用添加了注解的公开方法。之所以会有这样的改动,是因为在 API 16 之前可以调用所有公开方法具有安全隐患,例如可以利用 jave 的反射机制实现任意命令的执行。interfaceName 即 js 调用时的接口名称。我们可以通过 webview 的。 本文目录WebView 提高篇-和JavaScript的交互Android调用 JavaScript代码方法1:`loadUrl`方法方式2:`evaluateJavascript`方法JavaScript调用 Android 代码方式1:`addJavascriptInterface`方法方式2:shouldOverrideUrlLoading 方法方式3:`onJsAlert`、`onJsCo...