2011-10-20 21 views
-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幫助

回答

0

首先,這些錯誤消息與您的代碼無關,因此您可以忽略它們。

然後似乎有一些誤差與報價,有不匹配(這也打破了語法在你的問題突出)......也可能是唯一的這個網站,它解析它不正確......

雖然您是通過javascript訪問的,但我也沒有在課堂上看到「路徑」方法。同樣的「newContent」方法。

+0

感謝您的回覆。我現在更新了我的代碼。我忘記了把功能路徑和新內容。我現在也將雙引號改爲單引號。但它仍然不起作用。當我點擊編輯菜單按鈕時,我收到最後的警告。 – Droidme

+0

我的擔心也是system.out.println也劑量工作。那麼該方法沒有被訪問? – Droidme

+0

我試過你的代碼,它似乎對我有用:我從「jsmyname」發出「hello heast」消息。我需要做的更改是:1)在loadUrl調用中添加缺少的引用,2)我沒有創建菜單xml文件,所以我創建了代碼中的菜單項,3)我從java代碼創建了WebView實例而不是加載佈局並將其放置在佈局中。但我不認爲這些更改會產生任何影響:如果沒有第一次修復,它將無法編譯,最後兩次修復不會影響WebView。 –