2014-12-12 2 views
0

Я прочитал несколько тем здесь о SO об этом, сначала все они кажутся связанными, но чем когда я читаю код «решения», я не могу понять, где String, который хранит код.Как получить код HTML из веб-представления?

Что я хочу сделать, это загрузить локальный файл HTML, чем изменить его с помощью javascript. И после того, как я изменил его, я хотел бы либо заменить немодифицированный HTML-файл на измененный HTML-файл, либо создать новый HTML-файл из измененного HTML. Поэтому после этого процесса у меня был бы модифицированный HTML-файл, сохраненный на SD-карте пользователей.

Я любил бы его, если там, где а функция, как это:

String htmlContent = myWebView.getSouce(); 

Чем я мог бы просто создать файл HTML из этой строки и сохранить его на SD-карту.

Это мой код.

 final WebView webview = (WebView)rootView.findViewById(R.id.webView); 
     webview.getSettings().setJavaScriptEnabled(true); 

     webview.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) 
      { 
       /* This loads a javascript to the Html file and changes its design*/ 
       view.loadUrl("javascript:(function() { "+ 
         "Some Modifications to the test.html file"+ 
         "})()"); 
       //Now when i have modified the above test.html i would like 
//to get the modified HTML (The HTML now displaying in my webview). 
//So i was hoping i could write something like this: 
// String htmlContent = view.getSouce(); 

      } 
     }); 

     webview.loadUrl("file:///android_asset/test.html"); 
+0

возможно дубликат [как получить HTML контент из WebView?] (HTTP://stackoverflow.com/questions/8200945/how-to-get-html-content-from-a-webview) – tachyonflux

+0

Я тоже прочитал этот вопрос и ответы, и ни один из ответов не дает контенту webview t назад как строка. – user3711421

+0

В принципе, это риск для безопасности, поэтому вам нужно получить html в js и передать его обратно в android через интерфейс js. – tachyonflux

ответ

0
+0

Я до сих пор не понимаю, как получить измененный источник в строку. Как я должен использовать интерфейс для извлечения источника? – user3711421

+0

Ага, думаю, я понял. Под тем, где я загружаю скрипт, который вносит изменения, мне нужно загрузить другой скрипт: webview.loadUrl («javascript: window.HtmlViewer.showHTML» + »('' + document.getElementsByTagName ('html') [0]. innerHTML + ''); "); .. Но это не приведет к двойной нагрузке. хмм. В любом случае, похоже, что это работает. – user3711421

+0

Да, вы, вероятно, можете сделать 'document.documentElement.outerHTML' вместо этого. Он не перезагружает страницу, вы можете сделать это в большинстве браузеров для выполнения js. – tachyonflux

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