仅在满足某些条件时才调用 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 扩展?的主要内容,如果未能解决你的问题,请参考以下文章