我正在玩XCode7测试版,尝试测试闪亮的新版本" Content Blocker Extension"。示例类采用与(已知)共享扩展相同的NSExtensionRequestHandling
协议。与共享扩展的本质区别在于,该类是普通的NSObject
,而不是*ViewController
子类,因为,您知道,阻止扩展不应该显示任何UI反馈。这至少是我的理解。无论如何,关键方法beginRequestWithExtensionContext
应该将阻塞声明JSON提供给扩展点,但不会被调用。该扩展程序的TRUEPREDICATE
为NSExtensionActivationRule
,Safari确实在新的Safari配置"内容拦截器"中确认了我的主机应用程序的存在。但仍然没有雪茄。
是否有人知道它是否应该在测试版的早期就已经开始工作,或者它只是一个新闻稿?
而且,哦,虽然我们正在使用它,是否有任何该声明性JSON格式的文档,或者只是我的Google-Fu让我失败了? :)
答案 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()调用。