在webView中更改按钮的功能

时间:2016-09-04 09:08:44

标签: android

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

1 个答案:

答案 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;
    }

我没有检查过但它应该有用......