2014-02-20 91 views
0

在說這是重複的之前,沒有任何關於stackoverflow的解決方案爲我工作。 我有一個應用程序,它有一個按鈕。 點擊按鈕後,將打開一個帶有web視圖的webviewActivity。 它有一個登錄,當我輸入我的登錄和嘗試(已與我的憑據)訪問該網站的其他部分我不能因爲沒有被記錄。WebView餅乾不起作用

這裏是我的WebViewActivity

public class WebViewActivity extends Activity { 

    private WebView webView; 
    private static byte[] finaldata; 
    FileInputStream finall = null; 
    private static boolean loopSleep = false; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webview); 

     webView = (WebView) findViewById(R.id.webView1);  

     CookieSyncManager.createInstance(this); 
     CookieManager cookieManager = CookieManager.getInstance(); 
     cookieManager.removeAllCookie(); 
     cookieManager.setAcceptCookie(true); 

     webView.setWebViewClient(new MyWebViewClient()); 
     WebSettings ws = webView.getSettings(); 
     ws.setSaveFormData(false); 

     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setDatabaseEnabled(true); 
     String dbPath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); 
     webView.getSettings().setDatabasePath(dbPath); 
     webView.getSettings().setDomStorageEnabled(true); 
     setContentView(webView); 
     webView.loadUrl("http://192.168.1.33:8080/formsvi/login.html"); 

    } 

    private class MyWebViewClient extends WebViewClient { 
     @Override 
     public WebResourceResponse shouldInterceptRequest (final WebView view, String url) { 
      if (url.contains("TAKEPICWITHCAMERA")) 
      { 
       //OPEN CAMERA AND TAKE PICTURE    
       Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
        startActivityForResult(takePictureIntent, 1); 
       } 
       while (!loopSleep) 
       { 
        try 
        { 
         Thread.sleep(1000); 
        } 
        catch (InterruptedException e) 
        { 
         e.printStackTrace(); 
        }   
       } 
       loopSleep = false; 
       InputStream is = new ByteArrayInputStream(finaldata); 
       return new WebResourceResponse("text/html", "UTF-8", is);  
      }   
      else 
      { 
       return null; 
      }    
     } 
    } 

    } 

希望相機代碼或shouldInterceptRequest我有這個問題沒有任何關係。

+1

該循環將永遠不會退出,它也會讓設備忙於浪費電池。 –

+0

直到拍攝照片,這不是問題。 這只是一個暫時的修復,因爲如果活動繼續,圖片不會與意圖一起發送 – AAlferez

+0

至少您需要查看AsyncTasks(http://developer.android.com/reference/android/os/AsyncTask .html) –

回答

0

這裏是我的問題:

String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); 
    webSettings.setAllowFileAccess(true); 
    webSettings.setAppCachePath(appCachePath); 

我忘記設置應用程序的緩存路徑!