我正在尝试通过Android与JavaScript进行互动。我按照[here] [1]发现的教程。
但是我收到以下警告.system.out.println也无效
WARN/KeyCharacterMap(310): No keyboard for id 0
WARN/KeyCharacterMap(310): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
WARN/InputManagerService(66): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44faba68
我无法传递值或获取值的原因
webEngine=(WebView) findViewById(R.id.webengine);
webEngine.getSettings().setJavaScriptEnabled(true);
webEngine.addJavascriptInterface(this, "android");
webEngine.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
return false;
}
});
webEngine.loadUrl("http://www.a11y.in/a11y_fs/");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
// TODO Auto-generated method stub
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
// Handle item selection
switch (item.getItemId())
{
case R.id.edit:
webEngine.loadUrl("javascript:var path =android.path();var newContent=android.newContent();var name = 'myname'; android.toast(name););
return true;
case R.id.renarration:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public String path()
{
return xPath = "//H3[@id='header']";
}
public String newContent()
{
return newContent ="my New Home";
}
public void toast(String x)
{
Toast.makeText(this, "hello from js"+x, Toast.LENGTH_LONG).show();
}
plz help
答案 0 :(得分:0)
首先,这些错误消息与您的代码无关,因此您可以忽略它们。
然后引号似乎有一些错误,不匹配(这也打破了你问题中的语法高亮)...或者它可能只是这个网站错误地解析它...
虽然您是从javascript访问它,但我也没有在您的课程中看到“路径”方法。同样是“newContent”方法。