我是一名新的Java程序员,使用Eclipse工作在Android SDK上。我使用webview创建了一个浏览器,但问题是,当我在任何页面上单击下载时,它在Android的默认浏览器中没有做任何事情,它会下载文件“在同一个网站上测试过”。我搜索了几个小时,我看到一些人使用setDownloadListener但在我的情况下,当我点击下载它只在默认浏览器中打开一个新页面。我不知道这是否重要,但我正在下载的文件是MP3。
这是我的代码:
public class MainActivity extends Activity {
WebView web1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web1 = (WebView) findViewById(R.id.webView1);
web1.setWebViewClient(new view());
web1.loadUrl("http://site.org");
web1.getSettings().setJavaScriptEnabled(true);
web1.getSettings().setUseWideViewPort(true);
web1.getSettings().setLoadWithOverviewMode(true);
web1.setDownloadListener(new DownloadListener() {
@Override
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);
}
});
我不确定setDownloadListener是否放在正确的位置?但无论如何我还有一个webclient来处理同一浏览器中的新链接:
public class view extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView v ,String url){
v.loadUrl(url);
return true;