2014-10-09 26 views
0

我需要幫助。此代碼適用於Android 4.2及更低版本,但Android 4.3及更高版本無效。我需要從任何網址獲取源代碼並將其保存到自定義文件中。如何使用vebview保存HTML表單url Android 4.3+

爲什麼選擇WebView?因爲我需要保存登錄後的代碼,並將其保存在Cookie中。

class MyJavaScriptInterface 
     { 
      @SuppressWarnings("unused") 
      public void showHTML(String html) 
      { 
       try { 
         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
          openFileOutput("home_slider", MODE_PRIVATE))); 
         bw.write(html); 
         bw.close(); 

       } 
        // Connect to the web site 
         catch (FileNotFoundException e) { 
         e.printStackTrace(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 

      } 
     } 

     final WebView browser = (WebView)findViewById(R.id.wv_hide); 
     browser.getSettings().setJavaScriptEnabled(true); 
     browser.getSettings().setBlockNetworkImage(true); 
     browser.getSettings().setLoadsImagesAutomatically(false); 
     browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT"); 
     browser.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) {   browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 
      } 
     }); 

     /* load a web page */ 
     browser.loadUrl("http://myurl.com"); 

回答

1

您showHTML方法聲明

+0

謝謝之前添加註釋@JavascriptInterface,它幫助... – 2014-10-09 08:47:29