2012-07-27 148 views
1

在爲脫機WebApp測試appcache問題時,我偶然發現了模擬器的問題: 我試圖在WebView中加載網頁。有時它表現得很完美,有時它什麼也沒有。 首先我認爲這是我的錯 - 監督我在測試時插入的一些錯誤代碼。但事實並非如此。
相反,我認爲這是模擬器本身的錯誤(或錯誤配置)。因爲如果我叫Android模擬器中的WebView加載頁面,但不顯示內容

myWebView.loadData("<html><body><h1>TEST</h1></body></html>", "text/html", "UTF-8"); 

然後

myWebView.loadUrl("http://10.0.2.2:8080/FrontEnd/index.jsp"); 

視圖顯示了一個標題爲 「TEST」 中的index.jsp,而不是內容。所以我加入了索引:

$(alert("Hallo Welt!")); 

現在,它顯示我的預期烤麪包「Hallo Welt!」 - >頁面已收到並以某種方式處理。
但:顯示器顯示不是我的index.jsp - 而是測試駐留。

此外,我觀察到「所有應用程序菜單」中的應用程序符號被削減了一半,最低的一行也沒有顯示。也許這是與圖形驅動程序不兼容或類似的!?

是否有人知道這個問題,或者可以給我一個提示如何解決這個問題?

+0

您是否啓用了java腳本mWebView.getSettings()。setJavaScriptEnabled(true); – vinaykumar 2012-07-27 13:42:09

+0

當然。我還有一個帶有onJsAlert覆蓋的WebChromeClient,當JS調用被調用時它會生成我的敬酒。這一切都很好。這只是我的問題:JS正在工作並顯示預期的輸出,但包含該JS的站點將不會顯示。 – 2012-07-27 13:46:03

回答

1

而問題是:對JS-警報與反應吐司:

myWebView.setWebChromeClient(new WebChromeClient() { 
     @Override 
     public boolean onJsAlert(WebView view, String url, String message, JsResult result) { 
      Logger.getLogger("js-console").log(Level.INFO, "received js-alert!"); 
      Toast toast = Toast.makeText(view.getContext(), message, Toast.LENGTH_LONG); 
      toast.setGravity(Gravity.CENTER, 0, 0); 
      toast.show(); 
      return true; 
     } 
    }); 

但不是要求

JsResult.confirm(); 

加入這一行toast.show();return true;之前所有的作品像預期後.. ... ... ...