2016-04-19 11 views
0

AndroidでWebViewを使用していて、APIレベルが19以上のAndroidでチェックしようとしています.Myコードは19より大きいAPIレベルで正常に動作しますが、WebView API LEVEL 19.で誰かがこれをチェックしてください。ここ はコードです:WebViewがAPIレベル19(KITKAT)で読み込まれなかった

public boolean loadingFinished = true;//is loading finished 
public boolean redirect = false;// redirect to page 
/** 
* {@inheritDoc} 
*/ 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.web_view, container, false); 
    mWebView = (WebView) rootView.findViewById(R.id.webView); 
    //initializing views 
    backButton = (BUtton) rootView.findViewById(R.id.web_view_back_button); 
    titleTextView = (TextView) rootView.findViewById(R.id.web_view_textView); 
    progressBar = (ProgressBar) rootView.findViewById(R.id.web_view_progress_bar); 
    backButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      getActivity().onBackPressed(); 
     } 
    }); 
    mWebView.setVisibility(View.GONE);//Visible the view after full loaded 
    mWebView.setInitialScale(1); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setLoadWithOverviewMode(true); 
    mWebView.getSettings().setUseWideViewPort(true); 
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    mWebView.setScrollbarFadingEnabled(false); 
    //check for network connection if not available show error msg!!! 
    if (!NetworkService.getConnectivityInfo().isConnected(getContext())) { 
     progressBar.setVisibility(View.GONE); 
     Toast.makeText(getContext(), getContext().getString(R.string.no_network_msg), Toast.LENGTH_SHORT).show(); 
    } else { 
     mWebView.loadUrl("https://www.google.co.in"); 
    } 
    progressBar.setVisibility(View.VISIBLE); 
    mWebView.setWebViewClient(new WebViewClient() { 

     /** 
     * {@inheritDoc} 
     */ 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) { 
      if (!loadingFinished) { 
       redirect = true; 
      } 

      loadingFinished = false; 
      view.loadUrl(urlNewString); 
      return true; 
     } 

     /** 
     * {@inheritDoc} 
     */ 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      loadingFinished = false; 
     } 

     /** 
     * {@inheritDoc} 
     */ 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      if (!redirect) { 
       loadingFinished = true; 
      } 

      if (loadingFinished && !redirect) { 
       progressBar.setVisibility(View.GONE); 
       //After page is loaded then whole web-view is visible 
       mWebView.setVisibility(View.VISIBLE); 
      } else { 
       redirect = false; 
      } 

     } 
    }); 

    return rootView; 
} 
+0

'WebView'がページをロードするようにするには、' shouldOverrideUrlLoading() 'から' false false'を返し、 'view.loadUrl()'を削除してください。 –

+0

ええ、これはAPIレベルが19より大きい場合にうまく動作しようとしましたが、APIレベル19では同じ問題がまだ機能しません。 – FiXiT

+0

ええ、あなたの現在の問題を引き起こしているとは思わなかったです。私はちょうどそれを指摘していた。 –

答えて

0

がwork.Thatsが、なぜコードがうまく実行されていませんがありましたAPIレベルが19より大きい場合mWebView.setInitialScale(1);を自分のコードから削除した後、APIレベル19でもうまく動作します。

0

APIレベル19関数setInitialScale(int型scaleInPercent)ではAPIにおけるWebViewのエンジンの変更19 http://developer.android.com/guide/webapps/migrating.html

+0

Thankyou Fiilしかし、私のコードは19以上のAPIレベルで正常に動作しています。APIレベル19でロードされ、白い画面が表示されます – FiXiT

+0

白い画面にSSL以外のアドレスも表示されますか? – Fiil

+0

はいいいえSSLエラーです。 – FiXiT

関連する問題