如何让 UIDocumentInteractionController 将日历显示为打开 .ics 文件的选项?

2024-04-08

我正在我的应用程序中使用的 Web 视图中拦截一种 URL,以便下载它链接到的文件,而不是仅仅尝试在 Web 视图中打开它。该链接指向 .ics 文件。因此,我将该文件下载到临时目录中,然后在 UIDocumentInteractionController 实例中调出该文件,但日历未显示为打开该 .ics 文件的应用程序之一,仅显示 Mail、DropBox 和“Copy”。

正如您在下面代码中的注释行中看到的,我尝试使用前面的 webcal:// (而不是 http://)打开链接,并且还手动设置 UIDocumentInteractionController 的 UTI 无济于事。是否有某种原因我的本地 .ics 文件不会将日历显示为打开它的选项?

//Test for link to an ics file
if ([urlToLoad rangeOfString:@"GetSingleEventCalendarFile" options:NSCaseInsensitiveSearch].location != NSNotFound)
{
    //urlToLoad = [urlToLoad stringByReplacingOccurrencesOfString:@"http" withString:@"webcal"];
    //NSData *contact = [NSData dataWithContentsOfURL:[NSURL URLWithString:webCalProtocol]];
    //return NO;
    NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlToLoad]];
    [NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *resp, NSData *respData, NSError *error){
        NSString *urlString = [req.URL absoluteString];
        NSString *actIdAndRest = [urlString substringFromIndex:[urlString rangeOfString:@"="].location + 1];
        NSString *actId = [actIdAndRest substringToIndex:[actIdAndRest rangeOfString:@"&"].location];
        NSString *fileName = [[@"activity" stringByAppendingString:actId] stringByAppendingString:@".ics"];
        NSString * path = [NSTemporaryDirectory() stringByAppendingPathComponent:fileName];
        NSError *errorC = nil;
        BOOL success = [respData writeToFile:path
                                     options:NSDataWritingFileProtectionComplete
                                       error:&errorC];

        if (success) {
            NSBundle * bundleContaining = [NSBundle bundleWithPath:NSTemporaryDirectory()];
            NSLog(@"%@", bundleContaining);
            NSURL *fileURL = [bundleContaining URLForResource:fileName withExtension:@"ics"];
            documentController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
            //documentController.UTI = @"ics";
            [documentController presentOptionsMenuFromRect:CGRectZero inView:self.view animated:YES];
        } else {
            NSLog(@"fail: %@", errorC.description);
        }
    }];
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 UIDocumentInteractionController 将日历显示为打开 .ics 文件的选项? 的相关文章

  • React Native:不透明视图内的透明视图

    我想用不透明框架和透明中心显示相机的视图 就像图片中的一样 黑色部分是相机的视图 我正在寻找具有纯反应本机组件的解决方案 没有额外的库 例如https github com gilbox react native masked view h
  • 两者都实现了类。将使用两者之一

    我有一个项目 它具有使用 SocketRocket 的依赖项 通过 CocoaPods 安装 并从 HeapAnalytics 导入了静态库 显然 HeapAnalytics 库已经使用了 SocketRocket 编译时没有出现错误 但在
  • ViewWillAppear 没有被 UISplitViewController 调用

    背景和目标 我有一个基于 UISplitViewController 的 iPad 应用程序 到目前为止它支持 4 个方向 但现在我想将其锁定为仅横向 我变了shouldAutorotateToInterfaceOrientation左视图
  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 这个错误是无效上下文0x0吗?

    我在ViewDidLoad中编写了以下代码 Implement viewDidLoad to do additional setup after loading the view typically from a nib void view
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • UICollectionView 未出现

    我正在尝试设置UICollectionView 以编程方式在我的视图控制器中扩展UIViewController 由于某种原因 我的收藏视图根本没有显示 以下是我所拥有的 为什么没有出现 我将它连接到委托和数据源并将其添加为子视图self
  • 如何从代码隐藏中设置 CarouselView 的项目?

    我有一个 CarouselView 它绑定到图像的 ItemsSource 但我想通过更改 CarouselView 的索引来更改当前显示的图像 我尝试使用 CarouselView Position 作为必须选择的元素的索引 但不幸的是这
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • FireMonkey iOS RAD Studio XE2 - 在从 URL 加载的表单上显示图像

    是否可以将 TImage 放置在 iOS 的 FMX 表单上 并将图像 jpg 从 URL 加载到此 TImage 中以在 iOS 应用程序中显示 我尝试过但没有成功 任何正确方向的提示或指出都会受到赞赏 将 TButton TImageC
  • SpriteKitPhysicsBody非矩形碰撞

    pipeUp physicsBody SKPhysicsBody rectangleOfSize pipeUp size 在此编码中我使用了rectangleOfSize对于碰撞物理体 但如果我想按像素仅使用图像的形状 我应该使用什么而不是
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • 使用 UIImageJPEGRepresentation 时,compressionQuality 应该是多少?

    我想对用户库中的照片应用滤镜 然后将其写回磁盘 我在用着UIImageJPEGRepresentation 该函数需要一个UIImage and a compressionQuality值介于 0 0 和 1 0 之间 因为我想保留原始质量
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • Xcode 9 中的“addingPercentEncoding”是否损坏?

    在 Swift 3 x 和 Xcode 9 beta 2 中 使用addingPercentEncoding https developer apple com documentation swift string 1690785 addi
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • NSPredicate 的 onFormat 字符串

    我想用 id 键对数据进行排序 我如何理解格式字符串的用途NSPredicate格式 我有一个100号的帖子 我的代码 let objectIDs posts map 0 id let predicate NSPredicate forma
  • ResponseSerializer“无法使用 Swift 3 调用非函数类型“NSHTTPURLResponse”的值?

    我一直在使用以下代码 没有出现任何问题 直到更新到 Xcode 8 beta 6 它类似于这个例子 https github com Alamofire Alamofire generic response object serializa

随机推荐

  • Angular 4 RC.4 和 .net core 服务器端预渲染

    我有这个项目https github com damirkusar AngularMeetsNetCore tree AngularRc4 https github com damirkusar AngularMeetsNetCore tr
  • 尝试安排计时器时出现 IllegalStateException

    从取消方法的文档中 宽松地说 如果该方法阻止一个或多个计划执行的发生 则该方法返回 true 当我执行这段代码时 private Timer timer null private TimerTask runnable new TimerTa
  • 如果 EnableCors Origin 无效,则完全阻止 Web API 执行

    我在用Microsofts EnableCors我的属性Web API来电 客户端行为按照我的预期运行 例如当 Origin 无效时 调用返回失败 但是 当我在方法中放置断点并从无效的源进行调用时 该方法仍然从上到下执行 即使客户端得到失败
  • 索引对象点表示法给出标量属性

    当我在使用点表示法应用方法后尝试引用对象属性时 我遇到了问题 仅当我尝试索引初始对象时才会发生 classdef myclassexample properties data end methods function obj procDat
  • 绝对位置 div 不会将其他内容向下推

    我的大部分代码都在 jsFiddle 中 http jsfiddle net MilkyTech suxWt http jsfiddle net MilkyTech suxWt 内容应加载在白框中的第一页上 溢出的内容会将页面的以下部分向下
  • TypeError - o.ngOnDestroy 不是函数

    在构建用于生产的角度应用程序时 ng服务没有问题 我在加载子模块之一时收到以下错误 ERROR Error Uncaught in promise TypeError o ngOnDestroy is not a function Type
  • 我如何从 Wai 请求转到 Yesod 路线?

    我想使用Wai HttpAuth 中间件 http hackage haskell org package wai extra docs Network Wai Middleware HttpAuth html隐藏 HTTP 基本身份验证后
  • 如何添加文本“ON”和“OFF”到切换按钮

    在我的项目中 我想在现有的切换代码上添加文本 所以我想要这样 当切换为ON时 它应该显示文本 ON 如果切换为关闭 则显示 OFF 文本 我无法将其更改为其他切换 因为它已经有一个使用它的后端 我只想输入 ON 和 OFF 文本 谢谢 这是
  • 没有确认模板的 Django DeleteView

    我在模板中使用 Django DeleteView 并创建了一个 url 和视图 是否可以跳过加载 confirm delete 模板的过程并立即发布删除 DeleteView回应POST and GET要求 GET请求显示确认模板 同时P
  • 当操作的发送者是 UIGestureRecognizer 时引用按钮

    我有一个按钮叫myButton我给了它一个UIGestureRecognizer这样一个IBAction仅在以下情况下运行myButton用两根手指按下 UIGestureRecognizer tapper UITapGestureReco
  • 为什么列表推导式会写入循环变量,而生成器却不会? [复制]

    这个问题在这里已经有答案了 如果我对列表推导式执行某些操作 它会写入局部变量 i 0 test any i 2 for i in xrange 10 print i 这会打印 9 但是 如果我使用生成器 它不会写入局部变量 i 0 test
  • RTL 支持可绘制左侧的自定义编辑文本

    我有一个编辑文本 其图像可绘制 带有不可编辑的前缀编辑文本 但现在我想让它支持 rtl 尽管我很努力 但我还是无法支持 rtl 我的自定义课程如下 public class PrefixedEditText extends TextInpu
  • 重命名 R 中因子的标签

    我有按年龄组组织的男性和女性人口的人口普查数据 library tidyverse url lt https www2 census gov programs surveys popest datasets 2010 2018 counti
  • 自定义号码选择器?

    有没有一种简单的方法可以为Windows Phone 7制作一个类似于timepicker控件的数字选择器 我想要自定义范围 0 99 0 59 0 9 Google bing 和 msdn 似乎对这个主题的信息非常模糊 我发现一篇文章准确
  • 检查模型是否存在多对多关系的最佳方法

    我有一些数据被发布到服务器并正在检索Player基于该数据 id 我正在使用以下代码 player Player findOrFail player data id 但是 我想检查一下Player属于特定的Team a belongsToM
  • 如何修复解决 Homebrew doctor 警告的路径

    又一个新手提问 我一直在努力为 Python 项目安装 matplotlib 因此阅读周围建议的 Homebrew 是包管理和依赖项的可靠解决方案 但是 当我运行 Homebrew 诊断时 我收到以下错误 brew doctor Warni
  • StreamReader 到文件?

    我有一个包含在 System IO StreamReader 中的输入流 我希望将流的内容写入文件 即 StreamWriter 输入流的长度未知 长度可能是几个字节 也可能是千兆字节 如何做到这一点最简单且不占用太多内存 像这样的事情 p
  • 状态未立即更新时的 ReactJS 表单验证

    我正在尝试在注册表单上使用 ReactJS 创建客户端验证 我在用http validatejs org http validatejs org 用于验证的库以及https github com jhudson8 react semanti
  • 使用第一行作为列名?熊猫 read_html

    我有这个简单的一行脚本 from pandas import read html print read html http money cnn com data hotstocks flavor bs4 哪个有效 很好 但是列名丢失了 它们
  • 如何让 UIDocumentInteractionController 将日历显示为打开 .ics 文件的选项?

    我正在我的应用程序中使用的 Web 视图中拦截一种 URL 以便下载它链接到的文件 而不是仅仅尝试在 Web 视图中打开它 该链接指向 ics 文件 因此 我将该文件下载到临时目录中 然后在 UIDocumentInteractionCon