Ich habe eine Website mit href
darin, die michprogrammatische Klick in Android WebView
<a id="mA" href="javascript:pLogin(2)" class="login-link__link private-cab-link"><i class="icon-user"></i>Авторизация</a>
Also auf https umgeleitet, ich auf sie durch JavaScript klicken. Es funktioniert in Chromkonsole
javascript:(function(){document.getElementById('mA').click();})()
Nun Ich versuche, das gleiche in WebView zu tun, indem sie meine App-Schaltfläche klicken.
public class RostelecomLoginActivity extends Activity {
WebView webView;
String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_rostelecom_login);
Intent webIntent = getIntent();
String url = webIntent.getStringExtra("url");
webView = (WebView) findViewById(R.id.webView1);
webView.setWebViewClient(new MeWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSaveFormData(true);
webView.getSettings().setSavePassword(true);
webView.loadUrl(url);
Button buttoner = (Button) findViewById(R.id.button1);
buttoner.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
webView.loadUrl("javascript:(function(){document.getElementById('mA').click();})()");
}
});
}
}
I MyWebViewClient bin mit allen Zertifikaten js
public class MeWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
}
Die Injektion ermöglichen funktioniert nicht. Wenn ich in WebView auf href klicke, funktioniert es. Was kann falsch sein?
beachten Sie bitte an akzeptiere eine Antwort. Die Lösung von "deviato" funktioniert super. Ich habe es getestet. Grüße – Lisitso