javascript - 安卓 WebView : Execution of javascript from java method called from javascript

标签 javascript android webview

我有以下 javascript 代码:

    function mine()
    {
        var i = 3;
        AndroidObject.call();
    }

其中 AndroidObject 是 javascript 接口(interface)。它有方法 call

    WebView myWebView;

    public void call()
    {
        runOnUiThread(new Runnable()
        {
            @Override
            public void run()
            {
                myWebView.loadUrl('javascript:alert(i);');
            }
        });
    }

以下代码在 javascript 中执行“i is not defined”时会产生错误,因为 javascript 不会在调用 java 代码的上下文中执行。

是否可以在同一上下文中从 java 方法执行 JS,即在上述情况下使“i”可见?

“i”在此示例中是整数,但它可以是任何类型的对象。

谢谢。

最佳答案

假设i是一个整数,

function mine()

 {

var i = 3;

AndroidObject.call(i);

}

WebView myWebView;

public void call(Integer i)
{
Integer temp = i;
    runOnUiThread(new Runnable()
    {
        @Override
        public void run()
        {
            myWebView.loadUrl('javascript:alert(' + temp + ');');
        }
    });
}

关于javascript - 安卓 WebView : Execution of javascript from java method called from javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822071/

相关文章:

javascript - 如何将文本转换为有用数据的数组?

javascript - HTML 标签显示在 ckeditor 底部

android - 线程不工作。应用程序意外关闭。

html - WebView 未正确加载 HTML 文件

javascript - Android : Detect history. WebView 中的 back()

android - 如何在 Android 的 webview 中禁用文本选择?

javascript - 提交时构建对象会导致应用程序阻塞

javascript - 阻止 Nightwatch/BrowserStack 集成运行的全局变量文件

android - 将android支持库v4添加到intellij ide

android - 模块 'app' 是一个没有构建变体的 Android 项目