Reputation: 829
I am using webView in Android and tries to check in Android with API Level greater than or equal to 19.My code works fine for API level greater than 19 but the WebView did not open in API LEVEL 19.Can someone please check this out. Here is the code:
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;
}
Upvotes: 2
Views: 2016
Reputation: 829
In API Level 19 function setInitialScale(int scaleInPercent) does not work.Thats why the code is running well on API Level greater than 19. After removing mWebView.setInitialScale(1);
from my code, it works well in API level 19 also.
Upvotes: 1
Reputation: 1740
There was a WebView engine change in API 19. http://developer.android.com/guide/webapps/migrating.html
Upvotes: 0