Apple已为我们提供了一个API,用于更新用于野生动物园内容拦截器的json(SFContentBlockerManager.reloadContentBlockerWithIdentifier),因此很明显,Apple打算让我们对被阻止的项进行自定义。

我已经玩了很长时间了,但我无法弄清楚您将如何实际操作。

我已经尝试过将不同的json文件加载到扩展程序中(一个用于广告,一个用于网站,等等),但是发送多个文件似乎总是在破坏我的扩展名。

我也尝试从应用程序内部编辑blockerList.json文件,但这似乎也破坏了扩展名。还告诉我,我们不允许编辑与应用程序 bundle 在一起的资源。

修改内容被阻止的文档似乎不存在。有没有人有示例或至少指向我可以使用的某些文档的链接?

谢谢

最佳答案

我上周已经做了这个定制。而不是将多个json传递给扩展名,您应该从应用程序主包的json文件中读取所有规则(广告,网站等)到一个数组中,然后将此规则数组写入一个新的json文件中并将此json保存到APP组容器中路径

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

并在扩展程序的beginRequestWithExtensionContext方法中,从path加载json为
NSURL *jsonPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:YOUR_APP_GROUP_IDENTIFIER] URLByAppendingPathComponent:@"SharedJsonFile.json"];

因此,如果您只想应用广告规则和转义站点规则,则必须更新SharedJsonFile.json文件以仅包含广告规则数组,然后使用(SFContentBlockerManager.reloadContentBlockerWithIdentifier)重新加载内容阻止程序。

10-07 16:06
查看更多