我的iPhone应用程序(支持iOS 6+)有一个Web视图,其中列出了每个事件的“添加到日历”按钮的事件。 “添加到日历”按钮是指向服务器上.ics文件的超链接。我已修改IIS以使用“text / calendar”作为.ics文件的MIME类型,并在我的UIWebView委托的shouldStartLoadWithRequest中使用以下代码:当请求URL包含“.ics”路径扩展名时
[[UIApplication sharedApplication] openURL:ics_url];
点击事件的“添加到日历”按钮时,我收到“无法订阅!事件名称!来自!环境路径!”。但是,我可以在设备的safari浏览器中打开该文件。
所以我尝试了一些没有效果的东西
1)将文件内容加载到NSData并尝试使用
在webview中加载数据尝试了这个 -
[mywebview loadData:webData MIMEType:@"text/calendar" textEncodingName:@"utf-8" baseURL:RequestURL];
和 -
[myWebView loadData:webData MIMEType:@"text/calendar" textEncodingName:@"utf-8" baseURL:nil];
- 我可以在NSLog时查看文件内容。但webview:didFailLoadWithError被调用,没有任何加载。如果我将MIME类型更改为text / html,webview将加载vcalendar文件的文本。
2)下载文件内容并将其保存到文档目录并尝试打开文件
[webDataString writeToFile:pathToFileInDocumentDirectory atomically:NO encoding:4 error:&error];
[myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:pathToFileInDocumentDirectory]]];
- 再次,正确保存文件内容。我可以重新加载它们并查看内容。但是Web视图不会加载请求。
3)我甚至尝试过在canOpenUrl失败的(如预期的那样)
if ([[UIApplication sharedApplication] canOpenURL:[NSURL fileURLWithPath:pathToFileInDocumentDirectory]]) {
[[UIApplication sharedApplication] openURL:[NSURL fileURLWithPath:pathToFileInDocumentDirectory]];
}
HELP !!!
答案 0 :(得分:1)
问题似乎是网络摄像头(必须使用https,而不是)协议以及在IIS上进行MIME类型设置的方式的组合。幸运的是,我没有必要探索实现这一目标的其他方法。
[[UIApplication sharedApplication] openURL:ics_url];
上述似乎有效。