Ich weiß, es eine Menge Fragen darüber existiert, aber ich verstehe nicht, warum meine folgenden Code nicht mehrJavascript Injektion in webview
Hier funktioniert mein Code:
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 + "';" +
}
}
Meine ursprüngliche webview ist übergangen und es zeigt nur myValue
in der Seite anstelle von vielen Informationen.
Wenn jemand weiß, warum ich dieses Verhalten ...
Thx
EDIT:
und der Teil der html
<input type="text" size="20" maxlength="19" autocomplete="off" name="CARD_NUMBER" id="CARD_NUMBER" class="my_class_name" value="">
Mai dieses ich Ihre Frage nicht beantworten, aber Sie eine Art Schleife erstellen, da Sie loadURL innerhalb von 'onPageFinished' nennen und 'loadUrl' – TheRedFox
Obiger Kommentar klingt echt. kannst du deine html-datei posten, damit wir sie an unserem ende testen können? – Darpan
In der Tat ist es eine Zahlung Webview von Atos, so dass ich nicht sicher bin, dass ich html – mrroboaat