2014-02-20 5 views
0

Прежде чем говорить, что это дубликат, ни одно из решений вокруг stackoverflow не работало для меня. У меня есть приложение, которое имеет кнопку. После нажатия кнопки открывается webviewActivity с веб-просмотром. Он имеет вход, и когда я ввожу свой логин и попытаться получить доступ к остальной части сайта (с моими учетными данными уже), я не могу из-за не вошли в систему.Cookies 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); 

я забывал прописать путь кэша приложения!

Смежные вопросы