gpt4 book ai didi

javascript - Android WebView 中的程序化点击

转载 作者:可可西里 更新时间:2023-11-01 18:51:10 28 4
gpt4 key购买 nike

我有一个带有 href 的网站,它将我重定向到 https

<a id="mA" href="javascript:pLogin(2)" class="login-link__link private-cab-link"><i class="icon-user"></i>Авторизация</a>

所以,我可以通过 JavaScript 点击它。它适用于 chrome 控制台

javascript:(function(){document.getElementById('mA').click();})()

现在我尝试通过单击我的应用程序按钮在 WebView 中执行相同的操作。

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();})()");
}
});

}

}

我正在使用 MyWebViewClient 来允许所有证书

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();
}
}

js 注入(inject)不起作用。如果我在 WebView 中单击 href,它就会工作。有什么问题吗?

最佳答案

click() 没有在 android js 接口(interface)中实现,你必须使用 HTML DOM 事件对象,如下所示:

webView.loadUrl("javascript:(function(){"+
"l=document.getElementById('mA');"+
"e=document.createEvent('HTMLEvents');"+
"e.initEvent('click',true,true);"+
"l.dispatchEvent(e);"+
"})()");

关于javascript - Android WebView 中的程序化点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16709963/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com