so che esiste un sacco di domande su questo, ma non capisco il motivo per cui il mio codice seguente non funziona piùJavascript iniezione in WebView
Ecco il mio codice:
private void init() {
webview.setWebViewClient(new FormWebViewClient());
webview.postUrl(url, EncodingUtils.getBytes(data, "BASE64"));
}
private class FormWebViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
// progressBar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
LOGD(TAG, "Url : " + url);
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:" +"document.getElementsByClassName('my_class_name')[0].value = '" + myValue + "';" +
}
}
mio WebView originale è sovrascritto e visualizza solo myValue
nella pagina invece di molte informazioni.
se qualcuno sa il motivo per cui ho questo comportamento ...
Thx
EDIT:
e la parte di HTML
<input type="text" size="20" maxlength="19" autocomplete="off" name="CARD_NUMBER" id="CARD_NUMBER" class="my_class_name" value="">
Può essere questo non risponde alla tua domanda, ma penso che si sta creando una sorta di ciclo dal momento che si chiama loadURL all'interno di 'onPageFinished' e 'loadUrl' – TheRedFox
Il commento sopra sembra legittimo. puoi pubblicare il tuo file html in modo che possiamo testarlo alla nostra estremità? – Darpan
In effetti, è una visualizzazione web di pagamento da Atos quindi non sono sicuro di poter pubblicare html – mrroboaat