基本上,我想获取已经从 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/