2015-02-03 6 views
6

Ich entwickle eine Anwendung, in der ich den ausgewählten Text abrufen muss.So erhalten Sie ausgewählten Text in WebView Android

Ich habe eine benutzerdefinierte kontextabhängige Aktionsleiste, die angezeigt wird, wenn der Benutzer einen Text in der Webansicht auswählt. Ich möchte hervorgehobenen Text unter Selection-Handler erhalten, wenn ich auf den Button mit der Aktionsleiste klicke.

Frage wurde früher How to get the selected text in android webview gestellt.

Aber hatte keine Lösung.

ich so etwas wie myWebView.getSelection versuchen()

+0

Ich denke, man sollte diese Überprüfung: http://stackoverflow.com/questions/22336903/use-a-custom-contextual-action-bar-for- Webansicht-Textauswahl –

Antwort

0

posted ich eine Antwort auf eine ähnliche Frage. Teilen Sie es hier für den schnellen Zugriff auf die Antwort.

Für API> = 19 können Sie evaluateJavascript

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

Für < 19-API verwenden, können Sie evaluateJavascript verwenden Sie verwenden, um die loadUrl Methode wie unten:

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

Dann, wenn Sie das möchten, erhalten Auswahl verwenden Sie die folgenden:

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

Und eine WebAppInterface Klasse definieren, wie unten:

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