我在webView中加载了一个Web URL。我想更改web的特定按钮的功能。我可以访问按钮并更改其功能吗?
public class MainActivity extends AppCompatActivity {
WebView mWebView;
String URl = "http://comingup.review/user";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
mWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl(URl);
mWebView.setWebViewClient(new WebViewClient()
);
}
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
super.onBackPressed();
}
}
}
答案 0 :(得分:0)
在WebViewClient
中将断点放在shouldOverrideUrlLoading(WebView view, String url)
内,并检查当您点击按钮时webview加载的网址是什么。
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false; // put here breakpoint
}
单击按钮后,webview会将您重定向到另一个URL,您将在断点中看到该URL。复制这个网址。
之后,将其放在shouldOverrideUrlLoading(WebView view, String url)
:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (JavaUtils.equals(url, "url from button click")) {
// do whatever you need
return true;
}
return false;
}
例如:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (JavaUtils.equals(url, "about:blank")) {
finish();
return true;
}
return false;
}
我没有检查过但它应该有用......