首页 > 解决方案 > onPageFinished() 方法未在 android 的 webview 中调用

问题描述

当我使用这个特定的 url = realtor.com

onPageFinished() 工作,但是当我点击这个URL 的搜索按钮时,onPageFinished 不能工作,只是因为数据来自 javascript

 **WebActivity.java** 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_web);

            WebView  webView = (WebView) findViewById(R.id.webview1);
            webView.setWebChromeClient(new WebChromeClient() {   });
            WebSettings webSettings = webView.getSettings();
            webSettings.setJavaScriptEnabled(true);
            webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
            webView.addJavascriptInterface(new MyJavaScriptInterface(),"android");

            webView.loadUrl("https://www.realtor.com");

            webView.setWebViewClient(new WebViewClient() {
                    @Override
                    public void onPageStarted(WebView view, String url, Bitmap favicon) {
                            super.onPageStarted(view, url, favicon);
                            Log.d("=====", "====Start  " + url);
                    }

                    @Override
                    public void onPageFinished(WebView view, String url) {
                            super.onPageFinished(view, url);
                            Log.d("=====", "=======Finish  " + url);
                            view.loadUrl("javascript:window.android.onUrlChange(window.location.href);");

                    }

                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                            Log.d("=====", "====shouldOverrideUrlLoading  " + view.getUrl());
                            return super.shouldOverrideUrlLoading(view, request);
                    }
            });
    }
    class MyJavaScriptInterface {
            @JavascriptInterface
            public void onUrlChange(String url) {
                    Log.d("hydrated", "onUrlChange" + url);
            }
    }

}

我的问题是 我只想获取我当前的 URL 并且我需要知道我的页面已更改

标签: javascriptjavaandroidwebviewandroid-webview

解决方案


推荐阅读