-1
我想通過Android與JavaScript進行交互。我跟着找到的教程[這裏] [1]。Android窗口已經集中警告javascript界面
但我得到以下warning.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: [email protected]
原因,其中我不能夠通過值或獲取值回
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幫助
感謝您的回覆。我現在更新了我的代碼。我忘記了把功能路徑和新內容。我現在也將雙引號改爲單引號。但它仍然不起作用。當我點擊編輯菜單按鈕時,我收到最後的警告。 – Droidme
我的擔心也是system.out.println也劑量工作。那麼該方法沒有被訪問? – Droidme
我試過你的代碼,它似乎對我有用:我從「jsmyname」發出「hello heast」消息。我需要做的更改是:1)在loadUrl調用中添加缺少的引用,2)我沒有創建菜單xml文件,所以我創建了代碼中的菜單項,3)我從java代碼創建了WebView實例而不是加載佈局並將其放置在佈局中。但我不認爲這些更改會產生任何影響:如果沒有第一次修復,它將無法編譯,最後兩次修復不會影響WebView。 –