未调用iOS9 Safari内容拦截器扩展

时间:2015-06-10 12:43:26

标签: ios safari safari-extension ios9 safari-content-blocker

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

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

而且,哦,虽然我们正在使用它,是否有任何该声明性JSON格式的文档,或者只是我的Google-Fu让我失败了? :)

4 个答案:

答案 0 :(得分:5)

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

我构建了一个非常快速的测试应用程序,并使用NSLog()方法执行了一个简单的beginRequestWithExtensionContext,并且在启用扩展程序时调用它。

此外,fwiw,+[SFContentBlockerManager reloadContentBlockerWithIdentifier:completionHandler:]可让您随意触发主应用的更新。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

  

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

下面的webkit.org博客文章似乎是目前最好的"官方" Content Blocker JSON格式的文档。

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

答案 3 :(得分:1)

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

  1. 选择窗口 - > Xcode菜单中的设备。
  2. 在左栏中选择设备。
  3. 单击右侧面板左下角的向上三角形以显示设备控制台。