创建适用于iOS 11的邮件垃圾邮件过滤器扩展。

在某些国家/地区,垃圾短信是一个真正的问题。 人们从餐厅点菜或参加购物中心的“幸运大抽奖”时,无辜地给出了他们的电话号码。 但是不久之后,他们每天都会遭到数十条促销短信的轰炸。 与电子邮件不同,这些广告文字中的许多没有取消订阅的任何机制,其中一些也可能是骗局。

您可以删除消息,或者拒绝呼叫,然后继续前进,但是一种更永久的解决方案是完全阻止这些人,从而防止他们的文本到达您,直到您另行决定为止。 感谢iOS 11的IdentityLookup框架。

Apple引入了IdentityLookup框架,该框架允许开发人员过滤不需要的SMS和MMS。IdentityLookup仅适用于来自未知发件人的SMS和MMS消息。 它不适用于用户“联系人”列表中发件人的消息或任何来源的iMessage消息。

当用户从未知发件人处收到SMS或MMS消息时,“消息”应用程序可以询问您的“消息过滤器”应用程序扩展,以确定该消息是不请自来的还是不受欢迎的。 您的应用程序扩展程序可以通过使用自己的内置数据和逻辑,或通过由关联服务器进行的分析来做出此确定。

第一步将打开Xcode(9.0+)并创建一个新项目。 然后从Xcode菜单中选择File / New / Target,然后选择Message Filter Extension。

在您的扩展中,有一个继承自Xcode自动创建的ILMessageFilterQueryRequest的类。 消息应用程序使用ILMessageFilterQueryRequest对象将有关消息的信息传递到消息过滤器应用程序扩展。 如果您的应用程序扩展可以确定该消息是否有害,则将其决策返回给ILMessageFilterQueryResponse对象中的Messages。

它也符合ILMessageFilterQueryHandling 具有单一要求的协议,即handle(_ queryRequest:context:completion 🙂方法。 在此方法中,传递了类型为ILMessageFilterQueryRequest的queryRequest对象,并可以访问消息的发送者messageBody

要将邮件视为垃圾邮件,必须将ILMessageFilterAction的对象设置为.filter,其他 选项.none.allow将无效,该消息将正常显示。

如果要防止显示该消息,则需要将操作类型设置为.filter。 其他两个选项.none.allow将无效,该消息将正常显示。

以下是演示的代码段,如果包含关键字“交易”或“折扣”,则该邮件将被视为垃圾邮件。 在演示中,我将这些关键字设为静态。

将以下代码粘贴到MessageFilterExtension.swift文件中。

是的,我们已经完成了必要的代码!!!

下一步是使用任何具有iOS 11.0+的iPhone并在iPhone中运行扩展程序。 现在,从设置中启用邮件过滤。 请按照以下步骤在iPhone中启用消息筛选器。

•首先,通过选择所需的第三方SMS阻止程序,导航至“设置”>“消息”以启用该功能。

•在“邮件过滤”部分下,选择“ 未知和垃圾邮件”

•现在选择我们的应用程序,您将看到一个弹出窗口,其中包含与隐私相关的警告消息。 点击“ 启用 ”以在运行iOS 11的iPhone上激活垃圾邮件SMS过滤。

现在,从未保存的联系人发送包含关键字“折扣”或“交易”的邮件,您将在“ 邮件 ”应用中将该邮件作为垃圾邮件接收,而不会打扰您(无通知或声音)。

恭喜你! 您已经创建了一个应用程序,该应用程序可以阻止未保存的联系人发送的带有“折扣”或“交易”字样的消息。

我使用这个概念制作了App。

链接在这里…。

https://itunes.apple.com/us/app/spam-sms-filter/id1387383448

Interesting Posts