是否有可能只在满足某些条件时调用iOS 9中的Safari Content Blocker扩展程序 - 例如如果它是在一定的时间段内(让我们说你想阻止跟踪器从9-5而不是在晚上),或者你是在蜂窝电话?我知道理论上这可以在“设置”应用中手动完成。但有没有办法让它自动化,所以你可以随时保留内容拦截器?
答案 0 :(得分: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
)重新加载内容拦截器。