Javascript 有人知道您实际上是如何为safari内容拦截器更新blockerList.json文件的吗?

Javascript 有人知道您实际上是如何为safari内容拦截器更新blockerList.json文件的吗?,javascript,ios,json,safari,safari-content-blocker,Javascript,Ios,Json,Safari,Safari Content Blocker,苹果为我们提供了一个API来更新用于safari内容拦截器(SFContentBlockerManager.ReloadContentBlockerWithiIdentifier)的json,因此很明显,苹果有意让我们定制被阻止的项目 我已经玩了很长一段时间了,我不知道你会怎么做 我尝试将不同的json文件加载到扩展名中(一个用于广告,一个用于网站等),但发送多个文件似乎总是会破坏扩展名 我还尝试过在应用程序中编辑blockerList.json文件,但这似乎也破坏了扩展名。我还被告知,我们不允

苹果为我们提供了一个API来更新用于safari内容拦截器(SFContentBlockerManager.ReloadContentBlockerWithiIdentifier)的json,因此很明显,苹果有意让我们定制被阻止的项目

我已经玩了很长一段时间了,我不知道你会怎么做

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

我还尝试过在应用程序中编辑blockerList.json文件,但这似乎也破坏了扩展名。我还被告知,我们不允许编辑与我们的应用程序捆绑在一起的资源

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


谢谢

我上周完成了此定制。您不应该向扩展传递多个json,而应该从数组中应用程序主捆绑包的json文件中读取所有规则(广告、站点等),然后将此规则数组写入新的json文件,并将此json保存到应用程序组容器路径 作为

在extension的beginRequestWithExtensionContext方法中,将json从路径加载为

NSURL *jsonPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:YOUR_APP_GROUP_IDENTIFIER] URLByAppendingPathComponent:@"SharedJsonFile.json"]; 

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

我担心情况就是这样。谢谢你在这里回答我,
NSURL *jsonPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:YOUR_APP_GROUP_IDENTIFIER] URLByAppendingPathComponent:@"SharedJsonFile.json"];