javascript - 安卓应用 : Pass Javascript Var to Native Java variable

标签 javascript java android

我正在创建一个 Android 应用程序,我有以下 javascript,它位于从 webview 加载的“str8red.com”中:

<script>var name = "bob", age = 30;</script>

我有一个可以设置的文本框:

textView.setText("Static Text")

我想将我的文本框设置为 javascript var name 中的变量。我尝试使用 webview.loadUrl("javascript:Android.getIds(Ids);");evaluateJavascript 但没有成功。我也曾尝试遵循大量有关堆栈溢出和网络的指南,但均未成功。

下面是加载webview的代码:

wv = (WebView) findViewById(R.id.wv);
//Enable JavaScript
wv.getSettings().setJavaScriptEnabled(true);
wv.setFocusable(true);
wv.setFocusableInTouchMode(true);
//Set Render Priority To High
wv.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
wv.getSettings().setDomStorageEnabled(true);
wv.getSettings().setDatabaseEnabled(true);
wv.getSettings().setAppCacheEnabled(true);
wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
//Load Url
wv.loadUrl("https://str8red.com/");

最佳答案

好的,

因此,事实证明,对于从 KitKat 向上的任何东西,它都非常简单:

    wv.evaluateJavascript("fromAndroid()", new ValueCallback<String>() {
        @Override
        public void onReceiveValue(String value) {
            textView.setText(value);

我在理解上的差距是我试图直接访问 javascript 变量,但这不是 evaluateJavascript 正在做的事情。看起来它实际上运行了所选的 javascript 函数,在此示例中为 fromAndroid(),并且返回的任何内容都作为变量存储在 native 应用程序中。

以下是我的 javascript 代码,以防有帮助:

<script>
function fromAndroid(){
  return "{% if user.is_authenticated %}true{% else %}false{% endif %} 1 0";
}
</script>

很高兴由专家创建,但我希望这对将来的人有所帮助。

关于javascript - 安卓应用 : Pass Javascript Var to Native Java variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44472406/

相关文章:

android - 尝试在空对象引用上调用虚拟方法 尝试在空对象引用上调用虚拟方法 android.widget.EditText.getText()

android - Facebook 用户在通过 Facebook SDK 登录后保持登录状态 - Android

javascript - jQuery UI 选项卡激活事件无法正常运行

javascript - Highstock 图表工具提示仅在图表内激活

javascript - 单击按钮时显示图像

javascript - 使用 PhantomJS 检索完全填充的动态内容

java - org.mockito.exceptions.misusing.InvalidUseOfMatchersException' 异常

java - Virgo 的应用程序部署程序 API 在取消部署时崩溃

java - 如何从另一个文件或命令提示符将值传递给类

android - 如何在后台在android设备上发送短信?