【问题标题】:Invoke Safari Content Blocker extension only when certain conditions are met?仅在满足某些条件时才调用 Safari Content Blocker 扩展?
【发布时间】:2015-09-16 23:53:19
【问题描述】:
是否有可能在 iOS 9 中获得一个 Safari 内容拦截器扩展,以便仅在满足某些条件时才被调用 - 例如如果它在某个时间段内(假设您想阻止跟踪器从 9 点到 5 点,但不是在晚上),或者如果您使用蜂窝网络?我知道理论上这可以在“设置”应用程序中手动完成。但是有没有办法让它自动化,这样你就可以一直打开内容拦截器?
【问题讨论】:
标签:
ios
safari
mobile-safari
ios9
safari-content-blocker
【解决方案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) 重新加载内容阻止程序。