I am creating an app that allows college students to download their study material from within the app instead of the browser.
The home page has lots of subject names.
Each subject name leads to new webpage.
So, I have used WebViewClient
.
But, at the final page when I click on the *.ppt or *.pdf files it opens junk.
I want these files to be downloaded within the app.
How do I implement DownloadListener
package jiit.app;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class sm extends Activity
{
WebView browser;
protected void onCreate(Bundle anyvar)
{
super.onCreate(anyvar);
setContentView(R.layout.sm);
browser=(WebView)findViewById(R.id.webkit);
WebSettings webSettings = browser.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
browser.getSettings().setDefaultZoom(WebSettings.ZoomDensity.CLOSE);
browser.setWebViewClient(new WebViewClient());
{
browser.loadUrl("http://www.sm.ividhya.com/j128/");
}
}
}
try this DownloadListener
example :
public class webActivity extends Activity {
WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.webView=(WebView) this.findViewById(R.id.webview);
this.webView.getSettings().setSupportZoom(false);
this.webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
this.webView.loadUrl("http://www.sm.ividhya.com/j128/");
this.webView.setWebViewClient(new WebViewClientDemo());
webView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}
});
}
private class WebViewClientDemo extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}