programmatique cliquez sur dans Android WebView
J'ai un site web avec href
en elle qui l'a redirigé m'https
<a id="mA" href="javascript:pLogin(2)" class="login-link__link private-cab-link"><i class="icon-user"></i>Авторизация</a>
Je peux donc cliquez sur par JavaScript. Il fonctionne dans chrome console
javascript:(function(){document.getElementById('mA').click();})()
Maintenant, je suis en train de faire la même chose dans WebView en cliquant sur mon application bouton.
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();})()");
}
});
}
}
Je suis en utilisant MyWebViewClient pour permettre à tous les certificats
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();
}
}
La js injection ne fonctionne pas. Si je clique sur href dans WebView il fonctionne.
Quel est le problème?
- veuillez envisager d'accepter une réponse. La solution fournie par "deviato" fonctionne à merveille. Je l'ai testé. Ce qui concerne
Vous devez vous connecter pour publier un commentaire.
cliquez sur() n'est pas implémenté dans android js interface, vous devez utiliser le DOM HTML de l'Objet Événement, comme ceci:
code <input type="submit" class="btn2 border-radius5" value="CHECK STATUS" title="CHECK STATUS" name="initCaseSearch">
MercigetElementsByClassName
ougetElementsByName
, qui retourne un tableau d'objets. Par exemple, si vous avez seulement un élément de même nom, vous pouvez utiliser"l=document.getElementsByName('initCaseSearch');"+
à la place de la deuxième ligne.Vous devrez ajouter une interface javaScript pour la
WebView
pour appeler unJavaScript
fonction de code android.Essayer quelque chose comme cela:-
addJavascriptInterface
n'<input _ngcontent-c13="" style="padding: 2px" type="button" class="pri_btn" value="Login Here">
pourriez-vous me donner des solution pour ce. Je veux [incometaxindiaefiling.gov.dans/home] et appuyez sur se connecter