CallKit 查找用于从本机电话应用程序启动应用程序的号码

2024-02-29

我已经在我们的应用程序中实现了 CallKit。我们的应用程序拨打的电话显示在本机电话应用程序的最近通话列表中。

当点击最近列表中我们的应用程序的条目时,我们的应用程序就会启动。有没有办法找出哪个数字(/条目)用于启动我们的应用程序? (openURL 或其他东西)


你会想要实施application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool在 AppDelegate 上。对于这个特殊的动作,userActivity将有一个interaction财产,具有intent属性是一个实例INStartAudioCallIntent (or INStartVideoCallIntent如果您的应用程序播放视频)。

意图对象有一个数组INPerson其上的联系人对象,可用于确定有关拨打的内容的信息。

如果您的应用程序没有将任何联系人加载到系统中,您的通话是一对一的(而不是群组),并且您只想访问“拨打的号码”,您可能会在以下位置找到您想要的内容intent.contacts?.first?.personHandle?.value.

另请注意,您需要链接并导入Intents框架。

Update

之前的回答只对了一半。有两种方法可以获取此信息,并且都应该实施。

当点击最近的项目(或选择联系人)时,将调用上面的 continueUserActivity 变体,并且你的应用程序已经在运行.

但是,如果您的应用程序当前未运行,那么它将启动并continueUserActivity不会被调用。相反,系统将调用您的 AppDelegatedidFinishLaunchingWithOptions with a UIApplicationLaunchOptionsKey.userActivityDictionary,可以这样使用:

if let activityOptions = launchOptions?[UIApplicationLaunchOptionsKey.userActivityDictionary] as? [String: AnyObject],
   let activity = activityOptions["UIApplicationLaunchOptionsUserActivityKey"] as? NSUserActivity {
  self.launchWithActivity(activity)
}

一旦你拥有了NSUserActivity例如,行为与continueUserActivity

再次更新

根据下面评论中的@vivek takrani,看来continueUserActivity无论应用程序之前是否打开,都可以随时调用。如果您打算支持它,我会在 iOS 10 的早期版本上对此进行测试,因为我不认为撰写此答案时是这种情况。

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

CallKit 查找用于从本机电话应用程序启动应用程序的号码 的相关文章

  • 如何在 iOS 上删除配对的蓝牙设备?

    我希望我的应用程序可以删除配对的蓝牙设备 因为如果设备与 iPhone 配对 则该设备无法用于其他设备 我尝试了 CBCentralManager cancelPeripheralConnection 但它不起作用 他们仍然配对 或者还有其
  • UIWebView didFinishLoading 多次触发

    我有一些代码需要在 a 之后运行UIWebView完成加载文档 为此我设置了UIWebView的委托给我的控制器 并实现了webViewDidFinishLoading method 这会被多次调用 具体取决于要加载的页面类型 我不确定是否
  • ViewController.swift(界面)文件的用途是什么 - 在 Counterparts 中

    我刚刚注意到一个名为ViewController swift Interface 当我创建第一个 ViewController 时 Xcode 自动创建了它 Swift 中的类是否具有 需要与 Objective C 中相同的接口 并且由
  • 检测 AVPlayerViewController 是否正在播放视频或正在缓冲并向播放器添加覆盖

    我必须检测视频是否处于播放模式或缓冲模式 我正在从 URL 加载视频 我已经尝试了下面的代码 我可以在视频开始播放后进行跟踪 但不能在视频处于缓冲状态时进行跟踪 另外 我想在我的播放器中添加覆盖视图 我尝试在 AVPlayer 中添加叠加层
  • 如何在 UICollectionView PerformBatchUpdates 块中排序移动、插入、删除和更新?

    In my UICollectionView 我使用一个简单的自定义对象数组来生成和显示单元格 有时数据会发生变化 我想一次性为所有变化添加动画效果 我选择通过跟踪第二个数组中的所有更改 比较两个数组并在一个数组内生成一组移动 插入 删除和
  • 从 iPhone 上的 NSString 中删除 HTML 标签

    有几种不同的方法可以删除HTML tags从一个NSString in Cocoa One way http cocoa karelia com Foundation Categories NSString Flatten a string
  • 在 iOS safari 中禁用选择上下文菜单

    我想禁用在 iOS Safari 网络浏览器 中选择特定文本后出现的默认上下文菜单 那可能吗 这是可能的 请参阅这个例子 http jsfiddle net z9ZNU 基本上 重要的部分是设置正确的 css 属性 body webkit
  • 如何在文本末尾添加按钮,如 Facebook 的“继续阅读”?

    当状态帖子太长时 Facebook 应用程序会剪切文本并在末尾添加 继续阅读 它如何知道在哪里剪切文本并添加 继续阅读 不仅仅是向 textView 或标签添加按钮 而是如何剪切字符串 例如 在下图中 我将行数限制为 7 我可以在 text
  • 更新到 Xcode 7.0.1,项目现在有问题

    因此 我将 Xcode 6 1 版本上传到 iTunes Connect 并且该应用程序获得了批准 现在我正在尝试更新应用程序 我更新到 Xcode 7 0 1 Xcode 给我带来了问题 指出 对于应用程序 我使用了故事板和 Object
  • scrollToRowAtIndexPath:atScrollPosition:动画滚动太慢

    基于分页 UIScrollView 的页面更改 我正在调用scrollToRowAtIndexPath atScrollPosition animated到所显示的该页面的表详细信息 void scrollViewDidScroll UIS
  • 如果您查看内部,nib 文件到底是什么样子的?

    我刚刚学习 nibs 和 swift 并对某些东西感到好奇 我知道 如果您有一个 main storyboard 文件 则首先加载根视图控制器的笔尖 然后加载该视图控制器下可能分层存在的任何视图 但是 我想知道一些事情 当他们说笔尖已 加载
  • 即席分发失败

    我在一家大公司工作 正在开发一个适用于 iOS 5 的 iOS 应用程序 分发应用程序的唯一方式是通过临时部署 我拥有自己的服务器已经有一段时间了 由 o2switch 法国托管商 托管 当我开始开发时 我们使用它来部署应用程序以进行 Be
  • 我可以使用 NSDateFormatter 将此日期字符串转换为 NSDate 吗?

    我有这个字符串 2010 08 24T16 00 00 05 00 我想从中提取时间部分 即 16 00 并将其转换为 12 小时等效值 即下午 04 00 我正在尝试使用 NSDateFormatter 来完成此任务 但它不起作用 NSD
  • 如何使用 HTTP 标头发送非英语 unicode 字符串?

    我是 HTTP 相关问题的新手 我的问题是在 iOS 开发中 我想使用 HTTP 标头发送一个字符串 所以我使用 httpRequest setValue nonEnglishString forHTTPHeaderField custom
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • Apple Mach-O 链接器错误 armv7s 和 libGoogleAdMobAds.a

    我刚刚升级了我的应用程序以在新的 iPhone5 模拟器上运行 但是当我尝试为我的 iPhone 4S 设备构建它时 我收到此 Apple Mach O Liner 错误 ld 文件是通用的 3片 但不包含 n armv7s 切片 User
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • 在应用程序内启用或禁用 Iphone 推送通知

    我有一个 iPhone 应用程序 可以接收推送通知 目前 我可以通过转到 iPhone 设置 通知来禁用我的应用程序的推送通知 但我想在我的应用程序中添加一个开关或按钮来启用或禁用推送通知 这是可以做到的 因为我在 foursquare i
  • 如何在 XCode5 中将部署目标更改为 5.1.1 [重复]

    这个问题在这里已经有答案了 我正在一个项目中工作 我需要支持 iOS 5 1 1 但在 部署目标 的下拉菜单中我没有 5 1 1 作为选项 我的问题是如何将 iOS 5 1 1 添加为部署目标 我将非常感谢你的帮助 如果您愿意 您可以在框中
  • 更新查询时 ios 中出现“数据库锁定”错误

    我正在使用下面的代码更新查询 using sqlite 但我越来越 database is locked error 我尝试搜索一些 SO 链接 建议关闭数据库 但我再次执行此操作时遇到相同的错误 我已经提到过代码中出现错误的地方 cons

随机推荐

  • 多处理中的加入超时

    我有一个虚拟示例 我想在其中应用多重处理 考虑一个场景 其中有一串数字 我称之为帧 逐一传入 我想将其分配给当前可用的任何单个进程 所以我创建了 4 个正在运行的进程while循环 查看队列中是否有任何元素 然后对其应用函数 问题是当我jo
  • 在struts中从Angular 2发送和接收http post数据

    我正在尝试将 http post 数据从 Angular 4 代码发送到 struts 操作 Struts 操作正在被调用 但无法接收数据 给我一个错误 java lang ClassCastException java lang Inte
  • 使用 Swift 将 NSHttpCookie 存储在 iOS 钥匙串中

    我有一个以 HTTP cookie 形式从 Web 服务收到的身份验证令牌 目前 我依赖于 iOS 的默认行为 即将从 HTTP 请求返回的 cookie 存储在NSHTTPCookieStorage保留 cookie 直到用户关闭应用程序
  • 模型和实体有什么区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很困惑不明白这句话的含义 Entity Model DataModel ViewModel 任何人都可以帮助我理解它们吗 这些术语的
  • 使用正则表达式获取 DIV 内容

    如何使用正则表达式获取 DIV 的内容 我需要得到的是介于两者之间的 div class lv1right dfbg div 这些 div 标签之间还有几个 未明确定义的 标签 我想获取所有这些标签 提前致谢 我会避免对 HTML 使用正则
  • 如何在 Ruby 中获取 Linux 系统信息

    如何在 Ruby 中获取 Linux 系统的软件 硬件信息 这必须适用于 Fedora Ubuntu 等 Chef 背后的优秀人员 拥有一颗名为 Ohai 的优秀宝石https github com opscode ohai https g
  • 这个“ld”错误(“未定义的引用”)是什么意思?

    这个错误是什么意思 tmp ccevEqoI o In function main funcptr c text 0x61 undefined reference to AddALL collect2 ld returned 1 exit
  • GD库占用内存大吗?

    我想在我的 PHP 脚本中使用 GD 库从外部服务器生成随机大图片的小缩略图 每次调用页面时 GD库都会重新生成缩略图并显示 这会减慢服务器速度或消耗异常数量的内存吗 GD使用大量内存 它将图像完全加载到内存中并将其解压缩 因此每个像素至少
  • 什么是 Windows Phone Silverlight 8.1 中作为后台任务的 gHost.Background 任务?

    当我创建新的 Windows Phone SIlverlight 8 1 应用程序时 清单中有一个后台任务
  • RichFaces 4.2 日历。如何通过JavaScript设置日历的InputField?

    我必须将客户端的日期字符串复制到日历输入字段 更新日期输入 以下 JavaScript 不起作用 document getElementById AddressDetails renewal date input value renewal
  • Jquery国际电话号码输入

    我正在尝试遵循 jquery 教程http www jqueryscript net form jQuery International Telephone Input With Flags Dial Codes html http www
  • 在现有 S3 对象上运行 S3-put-triggered Lambda 函数?

    我在 Node js 中有一个 Lambda 函数 用于处理添加到我的存储桶中的新图像 我想为所有现有对象运行该函数 我怎样才能做到这一点 我认为最简单的方法是 重新放置 每个对象 以触发该功能 但我不确定如何执行此操作 需要明确的是 我想
  • 正确分发带有数据库的 Java 应用程序

    我有一个 Java 应用程序 它使用我想要分发的 MySql 数据库 我担心的是 为了分发此应用程序 我需要假设目标系统同时安装了 JRE 和 MySql Server 有什么方法可以将我的应用程序与 JRE 和 MySql 服务器捆绑在一
  • Google Analytics 事件跟踪 - 最大字符串长度

    我正在使用 Google Analytics 来跟踪 Android 应用程序中的事件 我的问题是 事件中的字符串长度是否有限制 我在谷歌的开发指南网站上没有找到任何关于这个主题的信息 此致 Edit 我尝试了一个包含 2000 个字符的字
  • 在 http.Handler ServeHTTP 函数中计算 Go 中发送和接收的字节数?

    如何计算发送和接收的字节数ServeHTTPGo 中的函数 计数需要相对准确 跳过连接建立并不理想 但可以接受 但必须包含标题 它还需要很快 迭代通常太慢 计数本身不需要发生在ServeHTTP 只要给定连接的计数可用于ServeHTTP
  • Python requests.exception.ConnectionError:连接中止“BadStatusLine”

    我正在尝试使用 Python requests 模块发出 Http GET 命令来访问一些基于 REST 的 API 这些 url 在 RESTClient 上工作正常 但是当我在 python 中使用相同的 url 时 出现连接错误 我试
  • 设备像素比到底是什么?

    每一篇关于移动网络的文章都提到了这一点 但我找不到任何地方可以解释这个属性到底衡量什么 任何人都可以详细说明这样的查询会检查什么吗 media only screen and webkit min device pixel ratio 1
  • BDD 和 Behat 特殊字符

    有类似的问题 Behat 和输入验证场景中的 Gherkin https stackoverflow com questions 6561815 gherkin in behat and input validations scenario
  • 获取当前剪贴板内容? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道一种方法 让我的脚本检测剪贴板的内容 并在页面打开时将其粘贴到文本字段中 而无需用户输入 如何做呢 请注意 此解决方案在 Fi
  • CallKit 查找用于从本机电话应用程序启动应用程序的号码

    我已经在我们的应用程序中实现了 CallKit 我们的应用程序拨打的电话显示在本机电话应用程序的最近通话列表中 当点击最近列表中我们的应用程序的条目时 我们的应用程序就会启动 有没有办法找出哪个数字 条目 用于启动我们的应用程序 openU