【发布时间】:2014-08-23 11:40:45
【问题描述】:
也许你可以帮助我。:)
我正在用 C# 中的 Xamarin 开发一个 Android 应用程序。在我开发 ASP.NET 页面之前,现在应该在应用程序中实现。因此,我使用了 webview,一切正常。但我无法从服务器下载任何文件,这些文件是在 ASP.NET 页面中动态创建的。
我尝试实现一个下载监听器,但 OnDownloadStart 方法从未被调用。
这是我的代码的一些部分。
OnCreate 方法:
... some Code
// Init Webview
var webViewMain = FindViewById<WebView> (Resource.Id.webViewMain);
webViewMain.Settings.JavaScriptEnabled = true;
webViewMain.SetWebViewClient (new MyCustomWebViewClient ());
webViewMain.SetWebChromeClient (new WebChromeClient ());
webViewMain.LoadUrl (LoadUrl);
WebViewClient 类:
private class MyCustomWebViewClient: WebViewClient, IDownloadListener {
... some Code
public void OnDownloadStart (string url, string userAgent, string contentDisposition, string mimetype, long contentLength)
{
Intent i = new Intent(Intent.ActionView);
i.SetData(Android.Net.Uri.Parse("url"));
}
}
ASP.NET 下载代码:
... some Code
//ByteArray
var client = new WebClient();
long length = dataFile.Length;
byte[] buffer = client.DownloadData(dataFile.FullName);
File.Delete(dataFile.FullName);
// Send to User
page.Response.Clear();
page.Response.ClearHeaders();
page.Response.ClearContent();
page.Response.AddHeader("content-disposition", "attachment; filename=" + dataFile.Name);
page.Response.AddHeader("Content-Lengt", length.ToString());
page.Response.ContentType = "application/octet-stream";
page.Response.BinaryWrite(buffer);
page.Response.End();
非常感谢您的建议:)
【问题讨论】:
标签: c# android asp.net download xamarin