WebView.setWebViewClient事件未在Android 4.4设备中调用

时间:2014-09-18 07:49:32

标签: android webview android-webview android-4.4-kitkat webviewclient

android 4.4 webview中的

已更改,您可以在此处查看:https://developer.android.com/guide/webapps/migrating.html

我正在使用targetsdkversion和minsdkversion设置为9来编译我的应用程序,因此我的webview以“quirks模式”启动,如下所示:https://developer.android.com/guide/webapps/migrating.html

这个怪癖模式在我的webview上遇到了一些问题,因为当我在具有较低Android版本的设备中启动我的应用程序时它工作得很好但是当我在4.4设备中启动它时,没有任何webview事件被调用,pagestarted,pagefinished ..等等,没有人被召唤....

我需要调用这些方法,因为我需要因某些原因覆盖它们。 ¿我怎么解决?

这是我的代码:

WebView adWebView = new WebView(this.ctx);

            adWebView.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageStarted(WebView view, String url, Bitmap favicon) {
                    // TODO Auto-generated method stub
                    super.onPageStarted(view, url, favicon);
                }

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    // TODO Auto-generated method stub
                    if(url.length() > 0){
                        if (!url.startsWith("http://") && !url.startsWith("https://")){
                            url = "http://" + url;                      
                        }
                        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                        SectionManager.getCurrentActivity().startActivity(browserIntent);                                                                   
                    }else{
                        onAdFailed();   
                    }
                    //onAdFailed();
                    return true;
                }

                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);

                    onAdReceived(view);
                    view.clearCache(true);
                }               

                @Override
                public void onReceivedError(WebView view, int errorCode,
                        String description, String failingUrl) {
                    // TODO Auto-generated method stub
                    onAdFailed();
                }

            });         

            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
            adWebView.setLayoutParams(params);
            adWebView.getSettings().setJavaScriptEnabled(true);
            adWebView.getSettings().setLoadWithOverviewMode(true);
            adWebView.getSettings().setUseWideViewPort(true);
            adWebView.setBackgroundColor(Color.TRANSPARENT);

            adWebView.loadUrl(url); 

0 个答案:

没有答案