仅在满足某些条件时才调用 Safari Content Blocker 扩展?

Posted

技术标签:

【中文标题】仅在满足某些条件时才调用 Safari Content Blocker 扩展?【英文标题】:Invoke Safari Content Blocker extension only when certain conditions are met? 【发布时间】:2015-09-16 23:53:19 【问题描述】:

是否有可能在 ios 9 中获得一个 Safari 内容拦截器扩展,以便仅在满足某些条件时才被调用 - 例如如果它在某个时间段内(假设您想阻止跟踪器从 9 点到 5 点,但不是在晚上),或者如果您使用蜂窝网络?我知道理论上这可以在“设置”应用程序中手动完成。但是有没有办法让它自动化,这样你就可以一直打开内容拦截器?

【问题讨论】:

【参考方案1】:

是的,我已经这样做了。在我的情况下,应用程序中有一个开关,因此用户可以禁用内容阻止程序,而无需转到设置应用程序。 每当用户禁用开关时,我只需更新 APP Group Container 路径中的 json 文件即可完成此操作。 在我的情况下,我正在从 APP Main Bundle 的 blockerJson 文件中读取所有阻止程序规则,并将这些规则放入一个数组中。然后将此规则数组写入 App 组标识符容器中的 BlockerJsonFile.json 文件。

[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:YOUR_APP_GROUP_IDENTIFIER] URLByAppendingPathComponent:@"BlockerJsonFile.json"]

当用户禁用开关时,我会更新 BlockerJsonFile.json 文件并将其清空并使用 (SFContentBlockerManager.reloadContentBlockerWithIdentifier) 重新加载内容阻止程序。

【讨论】:

以上是关于仅在满足某些条件时才调用 Safari Content Blocker 扩展?的主要内容,如果未能解决你的问题,请参考以下文章

仅在满足条件时才添加到字典

如何编写查询以仅在满足条件时才显示值?

如何制作 Segue Pass 数据并且仅在满足某些条件时执行

Safari iPad:防止双击放大

处理选项卡选择 SwiftUI

RxSwift:仅在满足要求时才压缩 Observables