也许你可以帮我。:)为什么Downloadlistener的OnDownloadStart方法永远不会被调用?
我用C#开发一个Xamarin的Android应用程序。在开发ASP.NET页面之前,现在应该在应用程序中实现它。因此我使用了一个webview,并且一切正常。但我无法从服务器上下载任何文件,这是我在ASP.NET页面中动态创建的。
我试图实现downloadlistener,但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();
许多感谢您的建议:)