Quiero cambiar el texto en un GoogleForm a través de Webview, sin embargo, la acción ocurre dos veces.
En el cuadro de texto, tiene la palabra dos veces, como si el javascript sucediera dos veces.
¿Tendrías una idea? Gracias
public class QuestionnaireFragment extends Fragment { //Lancement de l'activité @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_questionnaire, container, false); WebView view = (WebView) rootView.findViewById(R.id.webview_questionnaire); String url = "LINK GOOGLE FORMS"; WebSettings webSettings = view.getSettings(); view.getSettings().setJavaScriptEnabled(true); view.loadUrl(url); view.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); String js ="javascript:document.getElementsByClassName(\"quantumWizTextinputPaperinputInput exportInput\")[0].focus(); document.execCommand('insertText', false, '" + "WORD"+ "');"; view.loadUrl(js); } }); return rootView; }
}
EDITAR: cambio la cadena por:
String js= "javascript:document.getElementsByClassName(\"quantumWizTextinputPaperinputInput exportInput\")[0].value=\"WORD\";";
Pero otro problema:
En el caso 1 la palabra se repitió dos veces. En el caso 2 la indirecta no iba. Entonces, si usamos ambas líneas de código, podemos resolver el problema. Así que solo haz esto y funcionará:
view.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); String js ="javascript:document.getElementsByClassName(\"quantumWizTextinputPaperinputInput exportInput\")[0].focus(); document.execCommand('insertText', false, '" + ""+ "');"; view.loadUrl(js); String js2 = "javascript:document.getElementsByClassName(\"quantumWizTextinputPaperinputInput exportInput\")[0].value=\"WORD\";"; view.loadUrl(js2); } });