如何让 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 文件的选项? 的相关文章

  • TestFlight 提供反馈按钮

    我正在使用 iOS 8 的最新 testflight 版本 我将自己添加为内部测试人员 现在当我使用 testflight 打开应用程序时 我找不到反馈按钮 如果有人有任何线索 请告诉我 您在 Testflight 应用程序中提供反馈 打开
  • Flutter - 选择 TextFormField 时键盘不显示

    我目前遇到一个问题 当我选择任何一个时 键盘不会出现TextFormFielda 内的小部件Form小部件 这是表单的代码 位于我的内部CreateAccountForm有状态的小部件 import package flutter mate
  • 如何以编程方式设置设备(UI)方向?

    希望屏幕 UI 上的所有内容都能够从横向左向右旋转 反之亦然 我该怎么做呢 这是私人的吗 我知道 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation inte
  • 如何检测 UISwipeGestureRecognizer 的结束?

    来自苹果文档 滑动是一种离散手势 因此每个手势仅发送一次关联的操作消息 void touchesEnded NSSet touches withEvent UIEvent event 当我使用 UISwipeGestureRecognize
  • UIStackView分布均匀填充

    所以 我有一个UIStackView其中包含四 4 UIViews 如果我删除其中一 1 个UIViews 其他三 3 个将填满UIStackView 我的问题 如何添加最大高度UIView这样它就不会填满整个空间UIStackView即使
  • AFNetworking XML 请求问题

    我在用着AFNetworking 2使用 JSON 响应 它工作正常 现在我必须将其转换为 XML 而不是使用 JSON 因为服务器响应是 XML 格式的 在我搜索之后 我找到了这段代码 但它不起作用 与 Charles 我发现请求是错误的
  • 无法连接到 iTunes Store(获取应用内购买列表)

    我正在尝试从我的应用程序的应用程序内购买项目商店中获取列表 这是我所做的 安装了新的配置文件并启用了应用内购买 替换配置文件很棘手 但我认为我的设置是正确的 验证税务和银行信息是否正常 该应用程序已在商店出售 创建测试用户 在测试设备上以测
  • 如何开始复杂级别的跨平台移动应用开发? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在iOS中处理1到3个手指的滑动手势

    我使用以下代码来处理代码中的 1 根手指滑动 UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget self action selector
  • React-native-vision-camera无法访问后面的普通摄像头

    我正在尝试在 iPhone 11 Pro 上使用 普通 相机 我使用反应本机视觉相机 当我运行这段代码时 const devices useCameraDevices const deviceBack devices back consol
  • 将自定义数据包含到 iOS 故障转储中

    你好 堆栈溢出 有一个简单的问题要问您 当我的应用程序在用户的设备上崩溃时 是否可以将自定义错误数据嵌入到自动生成的 iOS 故障转储中 例如 我的 SQlite 数据库由于某种原因无法运行 例如 数据库文件已损坏 我无法从这个错误中恢复
  • 如何制作带有 SWIFT 图像的弹出窗口

    我想知道如何制作类似于此示例的弹出窗口 原始窗口充满了按钮 选择这些按钮后将拉出我想要使用的图像 我会简单地创建一个可重用的UIView组件以及作为子视图所需的一切 例如UIImageView为了你的形象 UILabel or a UIBu
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • 用户验证 Facebook 后未调用应用程序打开 Url 方法

    我已将 ios 应用程序中的 facebook 升级到 3 0 并使用提供的代码https developers facebook com docs howtos login with facebook using ios sdk http
  • ReactiveCocoa 将 SignalProducers 合二为一

    我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center NSNotificationCenter defaultCenter let signalProducer1 center rac
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • 在实例化对象之前是否可以检查故事板中是否存在标识符?

    在我的代码中我有这一行 但我想知道是否有办法检查是否 一些控制器 在我将它与 一起使用之前就存在实例化ViewControllerWithIdentifier 方法 如果标识符不存在 则应用程序崩溃 如果没有好的方法 这并不是一个大问题 我
  • 叠加 SKScene 未显示

    我正在尝试将 SKScene 覆盖在 SCNScene 上 当我在模拟器和 iPhone6 上运行我的应用程序时 overlayScene SKScene 按预期显示 但是当我尝试在 iPhone5 上运行它 尝试了 2 个不同的设备 时
  • 是否可以跨 2 个不同的 iOS 应用程序访问数据?

    假设我在 App1 中存储了一些 ID 数据 并希望在同一设备上的 App2 中访问它 平台上可以这样吗 如果没有的话有什么解决方法吗 您可以使用iOS 钥匙扣 http developer apple com library ios do
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • 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