在Android WebView中调用javascript函数

我有一个WebView和Button活动。 Android sdk 17.网站不是我的,所以无论如何我都无法改变它。 我需要通过android按钮点击来执行js代码。

我正在努力做到这一点

public class RostelecomLoginActivity extends Activity { WebView webView; String url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_rostelecom_login); Intent webIntent = getIntent(); final String url = webIntent.getStringExtra("url"); webView = (WebView) findViewById(R.id.webView1); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setSaveFormData(true); webView.getSettings().setSavePassword(true); Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { webView.addJavascriptInterface(new Object(){ @JavascriptInterface public void test(){ Log.d("JS", "test"); } },"Android"); webView.loadUrl("javascript:(function(){document.getElementById('mA').click();})()"); } }); webView.loadUrl(url); }} 

但它没有做任何事情。 我该怎么称呼我的js吧?

 webview.loadUrl("javascript:functionName(\"" + argument + "\")"); 

改变你的行…

 myWebView.loadUrl("javascript:testEcho('Hello World!')"); 

尝试这个可能对你有帮助…

我假设您在单击要访问的外部网站时尝试调用测试function。

调用你在Java端定义的函数的方法是你在创建javascript界面​​时指定的名称,在你的情况下是"Android"

所以调用将是“window.Android.test()”

此外,您必须等待加载网站,然后注入JavaScript代码。

几周前我用代码隐藏WebView查看答案, 直到完成JavaScript 。 这是一种使用webview管理JS和Java的类似方法。

考虑在页面加载时开始进行简单测试,然后将其添加到javascript点击function中。