大多数浏览器和
Developer App 均支持流媒体播放。
-
探索短信信息过滤器
短信信息过滤器扩展可帮助用户通过过滤未知发送者的短信信息来管理“信息”。了解如何利用信息过滤器扩展来构建 App。这些扩展会根据信息内容和其他启发自动将短信信息分类到文件夹和子文件夹。
资源
-
下载
♪ ♪
Ajay Singh: 大家好 欢迎来到 WWDC 我的名字是 Ajay Singh 今天我很高兴带您开启 探索短信过滤器之旅 这些允许您创建短信过滤器的扩展 可以帮助用户对来自未知发件人的 短信进行分类 首先 我将介绍 短信过滤器的工作原理 接着 我将谈谈 iOS 16 的新功能 我将通过一个例子来说明 如何使用 iOS 16 的 API 构建短信过滤器扩展 然后向您展示用户在使用您的扩展时 将在短信中看到什么 最后 我将谈谈印度的 Apple 短信过滤器的优化
让我们谈谈短信过滤器 在许多国家 企业现在使用短信 来通知客户相关交易 营销活动、警报和提醒 在此示例中 您可以看到混杂的短信 有短代码 字母数字代码和标准电话号码 这导致收件箱非常杂乱 而且这样真的很难找到 来自您在乎的人的私人信息
iOS 确实提供了一个选项 来过滤来自未知发件人的短信 但如果您每天收到很多条短信 即使是未知发件人的文件夹 也会很快被未读消息填满 自动过滤短信功能 对许多用户来说很重要 iOS 提供了一个安全的 基于沙盒的扩展模型 允许您对来自 未知发件人的短信进一步分类 用户可以从 App Store 找到并安装短信过滤器 App 安装后 您可以通过设置、短信 未知和垃圾短信打开短信过滤器 并打开过滤未知发件人 然后 您可以选择您的短信过滤器 这里我们安装了两个短信过滤器 请注意 一次只能激活一个过滤器
在 iOS 14 及更高版本中 短信中将会出现新的文件夹 其中包含交易短信、 推广短信和垃圾短信 这些文件夹可帮助用户整理和查找 与他们最相关的短信 无论选择哪种过滤器 短信都提供由交易短信、 推广短信、垃圾短信组成的 相同的分类结构 我们也清楚地了解到您的反馈 您想要有更详细的分类 因此 iOS 16 在 短信过滤 API 这方面 带来了一些新的功能 将短信过滤类别进行了扩展 增加了 12 个子类型
这就是在短信过滤器扩展中 新增的子类型 新的子类型是交易短信 和推广短信这两个类别的扩展 这为您提供了更为详细的分类筛选 和更好的使用体验 例如 在像印度这样的市场 收到大量与金融交易有关的短信 是很常见的 这些短信包括银行账户的活动 和信用卡消费的提醒 现在这些短信可以很好地被归类在 交易短信项下的财务子文件夹中 我们来看看短信过滤的工作流程 我们可以将流程分为两个阶段 配置加载和运行时分类 在配置加载阶段 用户在“设置”中 勾选已安装的短信过滤扩展后 这会触发 iOS 16 中 引入的新的 API 向该短信扩展发起问询请求 您现在可以使用支持的类别 和子类别列表进行响应 在本例中 过滤器报告 它支持子类别 财务、订单和优惠券 iOS 会验证这些功能 并使用合适的文件夹 更新信息中的收件箱 在运行时分类阶段 每次收到来自未知发件人的短信时 iOS 会查询您的过滤器 来确定它属于哪个类别和子类别 您还可以查看此处使用的 术语 action 和 sub-action 过滤器必须以配置加载阶段 声明的功能之一进行响应 然后在信息的相应子文件夹中 会出现短信 我们创建一个 简单的短信过滤器扩展 来看看 API 的使用方式 以及用户将在信息中看到的内容
在 Xcode 中 您首先创建 一个新的信息过滤器扩展目标 当您创建新目标并转到模板选择时 信息过滤扩展目标 将作为选项之一出现 选择信息过滤器扩展并单击下一步 现在为您的过滤器命名 然后单击完成
创建目标时 MessageFilterExtension.swift 将被自动填充所有需要的功能 在 iOS 16 中 我们有一个 新的 API 处理器 称为 capabilitiesRequest (功能请求) 调用函数为 ILMessageFilterCapabilitiesQueryResponse 返回代码选择 transactional 或 promotional sub-actions 您最多可以指定 五个 sub-actions 在这里 表示对 Transactions 下的 Finance、Orders 和 Health sub-actions 以及 Promotions 下的 Coupons 和 Offers sub-actions 的支持 现在创建并安装您的过滤器扩展 当您在“设置”中选择过滤器时 系统信息收件箱会根据拿到的 sub-actions 进行界面更新 增加相应的分类入口 交易短信类别下新增了 财务、订单和健康 推广短信类别下 新增了优惠和优惠券 现在我们已经确认我们的配置有效 我们来定义一些简单的逻辑 以便在收到短信时 将合适的类别返回给 iOS 首先 我们从 queryRequest 对象中 提取信息正文文本 如果信息包含特定的关键字 则返回合适的匹配 action 和 sub-action 在这里 我们添加了代码 如果关键词是“debited” 则将返回 filterAction 为 Transaction 返回 filterSubaction 为 transactionalfinance 同样 当信息 包含关键词“coupon”时 将返回 Promotion 和 PromotionalCoupons 您还可以更新交易短信和推广短信中 的其他子类别的业务逻辑 请注意 如果您返回一个不正确的 filterAction 和 filterSubAction iOS 将丢弃 sub-action 只执行 action 例如 如果我们返回 action Transaction 和 sub-action Coupons 然后该短信将被归类至 “交易短信”文件夹
在这里 我们有一个 从银行收到的短信示例 该短信含有关键词“debited” 它已被归类至财务子文件夹中
这是另一个示例 我们收到了带有 关键词“coupon”的黑色星期五短信 在短信中 它被归类至优惠子文件夹中
在 iOS 16 中 您可以选择 最适合您的用户群体的子类别 在第一个示例中 短信过滤器显示了 在“交易短信”类别下的 订单、提醒、健康 公共服务和天气子文件夹 而第二个示例显示了 在交易短信类别下的 财务、提醒 健康和奖励子文件夹 以及推广短信下的优惠券子文件夹 您的过滤器扩展可以使用这些子类别 为您的用户提供独特的使用体验 Apple 在印度提供了 短信过滤功能 在 iOS 16 中 我们已对其功能进行了增强 印度的 Apple 短信过滤器 现在支持额外的子文件夹 包括交易短信下的财务、订单 和提醒 您的银行交易短信 会被归类至“财务”中 您的食品或商家配送短信 会被归类至“订单”中 而重要事件和待办事项 则会被归类至“提醒”中 总结一下 在本次讲座中 我们介绍了短信过滤器 以及它是如何将短信分类为交易短信 推广短信和垃圾短信 在 iOS 16 中 您的短信过滤器扩展 现在可以将短信分类为 12 个额外的子类别 如欲了解更多信息 请查看本讲座 所附链接中的 API 文档 期待看到您帮助用户分类短信的 新创意和新想法 一如既往 十分期待您的反馈 以帮助我们不断改进短信过滤功能
-
-
7:02 - Message filter extension example
func handle(_ capabilitiesRequest: ILMessageFilterCapabilitiesQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterCapabilitiesQueryResponse) -> Void) { let response = ILMessageFilterCapabilitiesQueryResponse() // choose up to five sub-categories supported by the filter response.transactionalSubActions = [.transactionalFinance, .transactionalOrders, .transactionalHealth] response.promotionalSubActions = [.promotionalCoupons, .promotionalOffers] completion(response) }
-
8:16 - Return categories for incoming messages
func handle(_ queryRequest: ILMessageFilterQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterQueryResponse) -> Void) { guard let message = queryRequest.messageBody else { return } let response = ILMessageFilterQueryResponse() switch(message) { case _ where message.contains("debited"): response.filterAction = .transaction response.filterSubAction = .transactionalFinance break case _ where message.contains("coupon"): response.filterAction = .promotion response.filterSubAction = .promotionalCoupons break // update other cases } completion(response) }
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。