save android WebView cache and load no internet - android

I search and no find any learn for my questions please help.
my WebView code :
webView = (WebView) findViewById(R.id.webView1);
webView.setWebViewClient(new WebViewClient());
WebView webView = (WebView) findViewById(R.id.webView1);
initWebView(webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setAppCacheMaxSize(1024*1024*8);
webView.getSettings().setAppCachePath("/cache/");
webView.getSettings().setAppCacheEnabled(true);
webView.loadUrl("http://google.com");
webView.setWebViewClient(new WebViewClient());

Use this
ConnectivityManager connectivityManager = (ConnectivityManager) this.getSystemService(Activity.CONNECTIVITY_SERVICE);
if(connectivityManager.getActiveNetworkInfo().isConnected()){
mfnWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
mfnWebView.loadUrl(url);
}
else{
mfnWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
mfnWebView.loadUrl(url);
}
Mandatory permissions :- INTERNET, ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE

Related

AdvancedWebView loading html from phone storage issue

Hi i am using compile 'com.github.delight-im:Android-AdvancedWebView:v3.0.0' for display html5, my target file is stored in my phone storage path is "file:///storage/sdcard0/DcLms/Conjunction/index.html". when I am working with normal android WebView no issues. But trying with above mentioned library i got Webpage not available issue.
String targetPath = "file:///storage/sdcard0/DcLms/Conjunction/index.html";
AdvancedWebView webView = (AdvancedWebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new HelloWebViewClient());
webView.loadUrl(targetPath);
WebView basicView = (WebView) findViewById(R.id.basicView);
webView.setWebViewClient(new HelloWebViewClient());
basicView.getSettings().setJavaScriptEnabled(true);
basicView.setWebChromeClient(new WebChromeClient());
basicView.getSettings().setDomStorageEnabled(true);
basicView.loadUrl(targetPath);
basicView.setWebViewClient(new HelloWebViewClient());
First of all AdvancedWebView configures all settings automatically on it's instantiating. Take a look on the sources here.
And the problem is that by default AdvancedWebView dissallow access using file:// scheme:
...
final WebSettings webSettings = getSettings();
webSettings.setAllowFileAccess(false);
setAllowAccessFromFileUrls(webSettings, false);
webSettings.setBuiltInZoomControls(false);
...
So after creation of AdvancedWebView you need to add following lines:
AdvancedWebView webView = (AdvancedWebView) findViewById(R.id.webView);
webView.getSettings().setAllowFileAccess(true);
if (Build.VERSION.SDK_INT >= 16) {
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
NOTE: AdvancedWebView just subclassing WebView so it will not make any difference - the only difference that it configurating settings for you and handle some of the events.

android webview show credentials popup

Here is the link where I want to login:
http://audidome-dev.webspaces.vektorrausch.net/app/login.php
and in normal browser it looks so
but I can't get this popup in my WebView.
Here is my code:
mWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setDomStorageEnabled(true);
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setVisibility(View.VISIBLE);
mWebView.loadUrl("http://audidome-dev.webspaces.vektorrausch.net/app/login.php");
WebView won't display this pop-up. It will ask you for the credentials and it's up to you to fill the credentials (display the pop-up).

android webview unset default browser

I use the following to show a webpage in a webview
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webview);
WebView webView = (WebView)findViewById(R.id.webView);
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setClickable(true);
webView.setFocusableInTouchMode(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
webView.loadUrl("http://www.bbc.co.uk");
}
It works perfect and even has pinch and zoom however When i click to go to another webpage via a link it opens it in the default browser instead of the webview
How to i achieve this. I have read many articles on this but cant understand where i need to insert the commands
Any help appreciated
Mark
thanks very much for the link above the following works perfect
myWebView.loadUrl("http://someurl.com");
myWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) {
viewx.loadUrl(urlx);
return false;
}
});

Android WebView - code that can display and play a podcast can't play a YouTube video

I have this code which works to display a WebView and use it:
WebView webview = null;
#Override
public void onCreate(Bundle savedInstanceState)
{
//setTheme(R.style.Theme_Sherlock_Light);
super.onCreate(savedInstanceState);
//setContentView(R.layout.podcasts);
webview = new WebView(this);
webview.getSettings().setAppCacheEnabled(false);
webview.getSettings().setJavaScriptEnabled(true);
webview.setInitialScale(1);
webview.getSettings().setPluginState(PluginState.ON);
webview.setWebViewClient(new WebViewClient() {
#Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
//webSettings.setBuiltInZoomControls(true);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
//webSettings.getMediaPlaybackRequiresUserGesture();
webSettings.setAllowContentAccess(true);
webSettings.setEnableSmoothTransition(true);
webSettings.setLoadsImagesAutomatically(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(true);
webSettings.setUseWideViewPort(true);
setContentView(webview);
webview.loadUrl("url_to_go_to");
But when I try to use this code to point to a YouTube channel, it just shows a blank screen.
Any idea why that would happen?
Thanks!
In order to get HTML5 videos to show up you need to enable the following things in the WebView:
WebView view;
... //initialize WebView
WebSettings webViewSettings = view.getSettings();
view.setWebChromeClient(new WebChromeClient(){}); //just added this
webViewSettings.setDomStorageEnabled(true);
webViewSettings.setAppCacheEnabled(true);
webViewSettings.setAppCachePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/cache");
webViewSettings.setDatabaseEnabled(true);
webViewSettings.setDatabasePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/databases");
You also need to put android:hardwareAccelerated="true" in your AndroidManifest. Otherwise, HTML5 stuff like YouTube videos won't work.

WebView user agent

I have WebView which loads one mobile site, I need send to user agent to the server how it to realize?
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://searchmp3.mobi/");
mWebView.setWebViewClient(new HelloWebViewClient());
Checkout the setUserAgentString() method in the WebSettings, e.g.
mWebView.getSettings().setUserAgentString("My user agent string, here");
try this one
WebView wv = (WebView) findViewById(R.id.webview1);
WebSettings webSettings = wv.getSettings();
webSettings.setBuiltInZoomControls(true);
wv.loadUrl("http://www.google.com");

Categories

Resources