我试着在webview上加载CSDN的一个页面,然后通过F12查看网页源代码找到了搜索按键的ID号,运行后页面能成功加载,但是不出触发点击按键,谁能看看是哪里的问题?
public class MainActivity extends AppCompatActivity {
Button button;
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= findViewById(R.id.button);
webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebChromeClient(new WebChromeClient());
final String urlStr = "https://so.csdn.net/so/search?q=webview%E8%B0%83%E7%94%A8javascript%E8%AF%AD%E5%8F%A5&t=&u=&urw=";
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// handler.cancel();// Android默认的处理方式
handler.proceed();// 接受所有网站的证书
// handleMessage(Message msg);// 进行其他处理
}
});
webView.loadUrl(urlStr);//打开一个指定的Web资源界面(加载网址)
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
//
webView.loadUrl("javascript: document.getElementById('search').click();");
}
});
}
}
能写个Demo给我参考一下就更好了,我就想实现通过代码来操作webview上显示网页里的文本框或者按键
public class MainActivity extends AppCompatActivity {
Button button;
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= findViewById(R.id.button);
webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebChromeClient(new WebChromeClient());
final String urlStr = "https://so.csdn.net/so/search?q=webview%E8%B0%83%E7%94%A8javascript%E8%AF%AD%E5%8F%A5&t=&u=&urw=";
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// 网页加载完成后触发点击事件
webView.loadUrl("javascript: document.getElementById('search').click();");
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// handler.cancel();// Android默认的处理方式
handler.proceed();// 接受所有网站的证书
// handleMessage(Message msg);// 进行其他处理
}
});
webView.loadUrl(urlStr);//打开一个指定的Web资源界面(加载网址)
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
// 手动触发点击事件
webView.loadUrl("javascript: document.getElementById('search').click();");
}
});
}
}
javascript:(function(){"
document.getElementById('search').click(); " }
加一个function