solicitar sitio poner navegador modo google escritorio completo como android webview actionmode

sitio - version escritorio android



Cómo obtener el texto seleccionado de la vista web en Anulación de ActionMode (1)

La única forma de obtener una selección de texto de un WebView se basa en JavaScript. Esto no es específico del modo de acción, así es como se supone que la selección de texto de WebView debe ser recuperada de acuerdo con el punto de vista de los desarrolladores de WebView . Deliberadamente decidieron no proporcionar una API para acceder a la selección de texto de Java.

La solución comprende 2 enfoques.

Con Android API> = 19 puedes usar evaluateJavascript :

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

En compilaciones más antiguas, su único recurso es una interfaz de JavaScript personalizada con un único método que acepta String , al que debe llamar a través de webview.loadUrl pasando el mismo webview.loadUrl :

webview.loadUrl("javascript:js.callback(window.getSelection().toString())");

donde js es la interfaz de javascript adjunta:

webview.getSettings().setJavaScriptEnabled(true); webview.addJavascriptInterface(new WebAppInterface(), "js");

y

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

Estoy agregando algunos elementos de menú personalizados en el menú de acción contextual. Necesito dar una función de búsqueda web con las palabras seleccionadas en WebView.

Anulo el ActionMode usando este código.

@Override public void onActionModeStarted(ActionMode mode) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { if (mActionMode == null) { mActionMode = mode; Menu menu = mode.getMenu(); mode.getMenuInflater().inflate(R.menu.menu_search, menu); } } super.onActionModeStarted(mode); } public void onContextualMenuItemClicked(MenuItem item) { switch (item.getItemId()) { case R.id.menu_search: //HERE I WANT TO GET THE TEXT: HOW CAN I? break; } if (mActionMode != null) { mActionMode.finish(); } }

Quiero buscar en mi sitio usando la palabra seleccionada por el usuario en la vista web, pero no puedo obtener el texto seleccionado. ¿Cómo podría conseguir eso, alguien por favor ayuda?

Gracias por adelantado.