java - 将 Javascript 变量传递给 Android Activity?

标签 java javascript android html

基本上,我想获取已经从 javascript 访问过的数据,并将其传递给 Java/Android,以便我可以在那里使用它。

     /* An instance of this class will be registered as a JavaScript interface */
    class MyJavaScriptInterface {


        @SuppressWarnings("unused")
        public void setX(String html){
            Activity.this.x = html;
            Toast.makeText(myApp, Activity.this.x, Toast.LENGTH_LONG).show();
        }

    }

这可行,但我希望能够在任何地方调用相同的 Toast 行并获得相同的结果。目前仅在不通过 webview.loadUrl("Javascript:"...

加载调用时返回 null/empty

有什么建议吗?

最佳答案

您无法访问存储的 JavaScript 变量,必须通过函数调用来执行此操作。 您必须从 html 页面中的 javascript 调用它,例如:

TheNameOfYourInterface.setX('value');

当您通过

将界面添加到 webview 时,TheNameOfYourInterface 将是一个 javascript 对象
YourWebView.addJavascriptInterface(new MyJavaScriptInterface(),"TheNameOfYourInterface");

这样你就可以在你的webview上执行逻辑,并在设置数据时调用接口(interface),这样Java端的方法就会被调用。

关于java - 将 Javascript 变量传递给 Android Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287820/

相关文章:

javascript - Css 重叠 div 与多个 child

android - 尽管我安装了驱动程序,但 adb 无法检测到 Sony Xperia s

java - Android 中广播接收器的 AlarmManager

java - 是否可以在有条件的情况下在 Java 中声明变量?

javascript - HTML5 网络套接字 : max number of open connections?

java - 从Java中的文件读取错误

javascript - 如果 ul 存在则 addClass (jQuery)

java - 如何在多同步 Realm 中分离我的 Realm 对象?

java - Eclipse 在 Android 项目构建中卡住

java - 无法为 richfaces simpleapp 编译干净的 maven 生成的项目模板