2012-01-30 41 views
0

我處理以下問題:安卓:活動內的Web視圖不運行本地存儲的Web應用程序正確

我有一個活動裏面的WebView:

webView = (WebView) findViewById(R.id.webview); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setDatabaseEnabled(true); 
webView.getSettings().setBuiltInZoomControls(false); 
webView.getSettings().setSupportZoom(false); 
webView.getSettings().setLoadWithOverviewMode(true); 
webView.getSettings().setUseWideViewPort(true); 
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
webView.setScrollbarFadingEnabled(false); 

webView.setWebViewClient(new HelloWebViewClient()); 
System.out.println("percorso" + path.toString()); 
url.setText(path.toString()); 
webView.loadUrl("local path of my html file" .....\..\..page.htm); 

private class HelloWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
} 

這是應用程序我想在本地離線運行:http://miniapps.co.uk/checklist/ 如果我打開瀏覽器,然後轉到上面的鏈接,那麼一切正常,因此android瀏覽器實際上可以運行它。

現在我已經下載這個應用程序,我把它存儲在我的SD卡上的文件夾中:download/myapp 在文件夾中我有html文件:check_list.htm和一個文件夾(check_list文件)運行它。

但是,當我打開它在我的webview中,頁面是正確加載,但不工作...我不能點擊按鈕和其他元素,我實際上不能與它進行交互....

我認爲這可能是一個有關我的webview設置的問題,所以我用astro文件管理器衝浪到我的SD卡,我點擊了check_list.htm,我選擇了html查看器,並且我得到了同樣的問題....

所以我下載了歌劇手機,而且我也做了同樣的事情,但是這次我用opera打開它,現在它正常工作。

你知道爲什麼嗎?我該如何解決這個問題?我是否在webview上缺少一些設置,或者webview \ android broser是否存在打開本地存儲的html頁面和運行鏈接的javascript文件的問題?

編輯 如果我打開android瀏覽器,並編寫HTML文件的路徑,它的工作原理。我必須手動做,如果我點擊HTML文件,Android瀏覽器它不是一個選項......所以最終它在Android瀏覽器和歌劇,而且它不與HTML查看器和我的網絡視圖.....所以我錯過了一些設置導致網絡視圖應該具有android瀏覽器的相同功能....不應該嗎?

+0

將JavaScript警報發送到WebClient。抓住他們收集關於錯誤的更多信息。 – rds 2012-01-30 13:36:13

+1

不,webview不具備相同的功能,除非您完全實現了附加的「WebClient」。 – rds 2012-01-30 14:22:03

+0

Tnx任何關於我應該實施的鏈接或想法來解決它? – Sgotenks 2012-01-30 14:39:08

回答

0

如果「不運行」表示它不打開新窗口,那是因爲您需要指定webview客戶端。

從Javadoc文檔的WebView

默認情況下,通過HTML請求打開新窗口被忽略。無論它們是由JavaScript打開還是由鏈接上的目標屬性打開,都是如此。您可以自定義您的WebChromeClient以提供您自己的行爲以打開多個窗口,並以您想要的任何方式呈現它們。

https://stackoverflow.com/a/3847016/94363或RTFM ...

+0

不,我不必打開新窗口,上面鏈接的是一個Web應用程序,而不是一個網頁。這意味着它顯示正確的頁面,基本上是一個空的列表,然後當我寫下一個新的項目到一個文本框,我點擊添加到列表我不能.....該按鈕確實' t工作,我甚至不能按下它....並且與其他按鈕一樣...並且與其他應用程序相同,我無法與某些元素進行交互(也許使用.js文件在本地存儲的問題??) – Sgotenks 2012-01-30 12:20:07

+0

我編輯了這個問題...... – Sgotenks 2012-01-30 13:52:23

0

請確認之前,本地文件是資產/ WWW/index.html的目錄中。

+0

不,在我的SD卡上沒有在項目中......我認爲包括一個webwiew內的一個活動,我得到了一些功能的android瀏覽器... ..但我不需要添加一些東西給我的代碼(但我不知道缺少什麼),或者直接嵌入android瀏覽器:) – Sgotenks 2012-01-30 14:41:25

相關問題