2014-02-20 64 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); 

我忘记设置应用程序的缓存路径!