2015-02-03 14 views
6

Pracuję nad aplikacją, w której potrzebuję uzyskać wybrany tekst.Jak uzyskać wybrany tekst w WebView Android

Mam niestandardowy pasek działań kontekstowych, który pojawia się, gdy użytkownik wybiera tekst w widoku internetowym. Chcę uzyskać podświetlony tekst pod przyciskami selekcji po kliknięciu mojego przycisku paska akcji.

Pytanie zostało wcześniej zadane, How to get the selected text in android webview.

Ale nie miał rozwiązania.

próbuję coś podobnego myWebView.getSelection()

+0

Myślę, że powinieneś recenzję: http://stackoverflow.com/questions/22336903/use-a-custom-contextual-action-bar-for- wybór tekstu w przeglądarce internetowej –

Odpowiedz

0

wysłałem odpowiedź na podobne pytanie. Udostępniam go tutaj, by uzyskać szybki dostęp do odpowiedzi.

Dla API> = 19 można użyć evaluateJavascript

mWebview.evaluateJavascript("(function(){return window.getSelection().toString()})()", 
new ValueCallback<String>() 
{ 
    @Override 
    public void onReceiveValue(String value) 
    { 
     Log.v(TAG, "Webview selected text: " + value); 
    } 
}); 

Dla API < 19 można użyć evaluateJavascript użyć metody loadUrl jak poniżej:

mWebview.getSettings().setJavaScriptEnabled(true); 
mWebview.addJavascriptInterface(new JavaScriptInterface(), "javascriptinterface"); 

następnie, gdy chcesz uzyskać do wyboru użyj:

mWebview.loadUrl("javascript:javascriptinterface.callback(window.getSelection().toString())");

I zdefiniowanie klasy WebAppInterface jak poniżej:

public class JavaScriptInterface 
{ 
    @JavascriptInterface 
    public void callback(String value) 
    { 
     Log.v(TAG, "SELECTION:" + value); 
    } 
}