我想使用WebClient在iOS中实现下载pdf文档功能。目前它的工作非常适合iOS 11,在这里,我正在使用HttpCookieStore获得cookie。对于iOS 10,我无法检索cookie。
工作流程是1.获取cookies 2.创建webclient服务器请求并将cookie添加到标头。
对于iOS 11,下面是获取cookies的语法:
NSHttpCookie[] cookieStoreData;
if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
{
var cookieStore = webView.Configuration.WebsiteDataStore.HttpCookieStore;
cookieStoreData = await cookieStore.GetAllCookiesAsync();
}对于iOS 10,
cookieStoreData = NSHttpCookieStorage.SharedStorage.Cookies; 在这些场景中,它不会返回任何cookie,因此webclient对服务器的下一次调用将失败(如果是iOS 10)。
StringBuilder cookies = new StringBuilder();
var webClient = new WebClient ();
foreach (var temp in cookieStoreData)
{
cookies.Append(temp.Name + "=" + temp.Value + ";");
}
webClient.Headers.Add(HttpRequestHeader.Cookie, cookies.ToString());
webClient.DownloadDataAsync (webView.Url);
webClient.DownloadDataCompleted += (s, e) => {
if (e.Error == null)
{
// Downloading data......
}
else
{
Console.WriteLine("URL for page : " + e.Error.GetType());
Console.WriteLine("URL for page : " + e.Error);
new UIAlertView("Done", "Download Failed. Please try again.", null, "OK", null).Show();
}发布于 2018-11-07 00:43:51
事业:
解决方案:最好的解决方案是使用UIWebview而不是WKWebView.For,更详细地说,您可以访问这里。
https://stackoverflow.com/questions/53152127
复制相似问题