如何在Webview Android中执行按钮单击
我只是创建了这个应用程序:如何在Webview Android中执行按钮单击,android,button,webview,click,Android,Button,Webview,Click,我只是创建了这个应用程序: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView view = (WebView) findV
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView view = (WebView) findViewById(R.id.webView);
WebSettings faller = view.getSettings();
faller.setJavaScriptEnabled(true);
view.loadUrl("http://catcheat.net/test/test.html");
view.setWebViewClient(new WebViewClient());
}
}
现在我想做的是以编程方式单击页面上显示的唯一按钮,但我真的不知道怎么做。我在这里读过每一篇这样的帖子,但是没有人能帮我
这是HTML页面:
<html>
<body>
<form name="pg_frm" method="post" action="https://www.paygol.com/pay" >
<input type="hidden" name="pg_serviceid" value="333818">
<input type="hidden" name="pg_currency" value="EUR">
<input type="hidden" name="pg_name" value="Donation">
<input type="hidden" name="pg_custom" value="">
<input type="hidden" name="pg_price" value="0.5">
<input type="hidden" name="pg_return_url" value="">
<input type="hidden" name="pg_cancel_url" value="">
<input type="image" name="pg_button" src="https://www.paygol.com/webapps /buttons/en/white.png" border="0" alt="Make payments with PayGol: the easiest way!" title="Make payments with PayGol: the easiest way!" >
</form>
</body>
</html>
我认为假装用户点击是不可能的(至少我认为出于安全原因,这是不允许的,想象一下强迫用户点击有问题的广告、外部链接,甚至是应用程序内的购买按钮,…) 你能做的就是弄清楚点击按钮到底在做什么,然后绕过它 1) 它使一些html可见吗?->将网页另存为字符串并注入javascript以使隐藏的内容可见 2) 它是否在后台加载内容(如数据列表)->使用Fiddler检查请求,将网页另存为字符串,伪造请求并自己注入数据 3)
在很大程度上取决于按钮的功能;) 如果您的按钮位于Html页面中,那么您只需运行javaScript代码即可模拟如下单击事件:
view.loadUrl("javascript:clickFunction()");
您还需要在Html页面中定义clickFunction:
function clickFunction() {
//click event
}
也可以通过javascript添加上述函数:
view.loadUrl("javascript:clickFunction(){ //click event })()");
更新:
<html>
<head>
<script>
function clickFunction(){
var form = document.getElementById("myform");
form.submit();
}
</script>
</head>
<body>
<form id="myform" name="pg_frm" method="post" action="https://www.paygol.com/pay" >
<input type="hidden" name="pg_serviceid" value="333818">
<input type="hidden" name="pg_currency" value="EUR">
<input type="hidden" name="pg_name" value="Donation">
<input type="hidden" name="pg_custom" value="">
<input type="hidden" name="pg_price" value="0.5">
<input type="hidden" name="pg_return_url" value="">
<input type="hidden" name="pg_cancel_url" value="">
<input type="image" name="pg_button" src="https://www.paygol.com/webapps /buttons/en/white.png" border="0" alt="Make payments with PayGol: the easiest way!" title="Make payments with PayGol: the easiest way!" >
</form>
</body>
</html>
函数clickFunction(){
var form=document.getElementById(“myform”);
表单提交();
}
我找到了问题所在。我必须等待页面加载后才能调用另一个视图。加载
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView view = (WebView) findViewById(R.id.webView);
WebSettings faller = view.getSettings();
String url = "http://catcheat.net/test/test.html";
faller.setJavaScriptEnabled(true);
view.loadUrl(url);
view.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view , String url){
view.loadUrl("javascript:clickFunction()");
}
});
}
如果你想点击html页面中的一个按钮,比如adfly或其他网站的skip as按钮。 使用此代码
webview.loadUrl(“javascript:document.getElementById('skip_按钮')。click()”)代码>我认为按钮的作用写在HTML页面上。我对HTML了解不多,因此我将其发布在这里。我在另一个线程中看到,一些用户以编程方式(类似于机器人)点击按钮,我相信这是可能的。哦,伙计,你是我的英雄。最后一件事,我不知道javascript,那么我应该在函数()中放入什么?{…}?您希望您的按钮单击做什么?与按钮发布已经做的相同。我只想模拟用户的点击。(我想我说话像个婴儿,但我不知道)你想把你的表格交给我吗。所以我建议您查看这个链接var form=document.getElementById(“您的表单id”);表单提交();
// important don't forget to set below line in onCreate
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// instead of wp-submit you can set your own element id
webView.loadUrl("javascript:(function(){document.getElementById('wp-submit').click();})();");
}
});