7

我正在玩 XCode7 beta,试图测试闪亮的新“内容拦截器扩展”。示例类采用与NSExtensionRequestHandling(已知的)共享扩展相同的协议。与共享扩展的本质区别在于,该类是普通的NSObject,而不是*ViewController子类,因为您知道,Blocker 扩展不应该显示任何 UI 反馈。至少这是我的理解。无论如何,beginRequestWithExtensionContext应该将阻止程序声明 JSON 提供给扩展点的关键方法不会被调用。该扩展确实具有TRUEPREDICATENSExtensionActivationRule,并且 Safari 确实在新的 Safari 配置“内容阻止程序”中确认了我的主机应用程序的存在。但仍然没有雪茄。

有人知道它是否应该在测试版的早期就已经工作了,还是只是一个新闻稿?

而且,哦,当我们这样做的时候,是否有任何关于该声明性 JSON 格式的文档,或者它只是我的 Google-Fu 让我失望了?:)

4

4 回答 4

5

你怎么知道扩展没有被调用?

我构建了一个非常快速的测试应用程序,并NSLog()从该beginRequestWithExtensionContext方法中做了一个简单的操作,并在打开扩展程序时调用它。

此外,fwiw,+[SFContentBlockerManager reloadContentBlockerWithIdentifier:completionHandler:]您可以随意从主应用程序触发更新。

于 2015-06-10T18:19:47.323 回答
2

目前还没有任何文档,但我发现 url 中的某些字符阻止了 JSON 的加载它们是(我发现的可能更多):+(作为前缀)、$、|、^

于 2015-06-10T15:52:02.717 回答
2

是否有该声明性 JSON 格式的任何文档

下面的 webkit.org 博客文章似乎是 Content Blocker JSON 格式的当前最佳“官方”文档。

https://www.webkit.org/blog/3476/content-blockers-first-look/

于 2015-09-28T17:57:48.587 回答
1

使用设备控制台查看设备的实时日志。在那里你会看到你的 NSLog() 调用。

  1. 从 Xcode 菜单中选择窗口 -> 设备。
  2. 在左栏中选择设备。
  3. 单击右侧面板左下方的上三角形以显示设备控制台。
于 2015-10-05T09:57:49.160 回答