0
我使用WebView創建了一個Android應用程序,但我面臨的唯一問題是文件在默認瀏覽器中打開而不是下載。如何強制文件在應用程序中下載,而不是在默認瀏覽器中顯示
這是WebActivity代碼:
public class WebActivity extends Activity {
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView) findViewById(R.id.webView01);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new myWebClient()
{
@Override
public void onPageFinished(WebView view, String url) {
findViewById(R.id.imageLoading1).setVisibility(View.GONE);
findViewById(R.id.webView01).setVisibility(View.VISIBLE);
}
});
webView.loadUrl("domain");
webView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
}
public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
感謝您的回覆 - 我試過的InputStream但同樣它在一個新的瀏覽器打開可以請你提供 – user3566830
@ user3566830我添加的代碼從URL中的文件保存到一個文件中的代碼我的答案。 – AxiomaticNexus
感謝您的代碼,但它仍然不工作我添加的代碼之後 webView.setDownloadListener(新DownloadListener(){ 和公共無效onDownloadStart(URL字符串,字符串的userAgent, 可以請你更具體的前在哪裏添加代碼 – user3566830