2017-01-20 12 views
8

Wdrażam aplikację przy użyciu widoku internetowego. W przypadku adresów URL załadowanych w przeglądarce internetowej musiałbym zastąpić kod HTML załadowany w adresie URL.Sposób zastępowania stron internetowych załadowanych w widoku WWW

Jak mogę to zrobić w skuteczny sposób?

Objaśnienie: muszę wymienić konkretny skrypt skrypt od źródła:

Na przykład: Chcę

<html> 
    <script> SCRIPT A</script> 
    <p>Hello World</p> 
</html> 

chcę wyświetlić użytkownikowi ten drugi

<html> 
    <script> SCRIPT B</script> 
    <p>Hello World</p> 
</html> 

Dzięki

+0

Czy mógłbyś być trochę jaśniejszy? Czy musisz wymieniać części adresu URL lub części strony, którą ładujesz? i czy musisz wymieniać całe klocki na raz, czy jest to tylko słowo po słowie? również, czy szukasz haków do systemu delegatów Android, czy szukasz sugestii, jakiego algorytmu użyć? – katzenhut

+0

Zaktualizowałem moje pytanie, proszę sprawdź to – Addev

+0

jeśli się nie mylę, chcesz zastąpić obecny skrypt js w swoim skrypcie? – ZeroOne

Odpowiedz

1

Musisz zastąpić shouldInterceptRequest z WebViewClient. Zobacz dokumentację here.

Ogólna forma byłoby coś takiego (niesprawdzone):

webview.setWebViewClient(new WebViewClient() { 
    @Override 
    public WebResourceResponse shouldInterceptRequest (final WebView view, String url) { 
     if (you_want_to_intercept) { 
      /*return custom WebresourceResponse here*/ 
     } else { 
      /*call superclass*/ 
      return super.shouldInterceptRequest(view, url); 
     } 
    } 
} 

Mam nadzieję, że to pomoże, daj mi znać, jeśli nie.

0

Możesz użyć żądania http, aby uzyskać stronę HTML jako ciąg, a następnie użyć czegoś takiego jak jsoup, aby znaleźć i zamienić skrypt, i użyć WebView.loadDataWithBaseURL, aby załadować zawartość HTML do WebView.

Powiązane problemy