iOS内容阻止扩展加载多个JSON文件

iOS内容阻止扩展加载多个JSON文件,第1张

概述是否可以从Content Blocker Extension返回多个 JSON文件?在我的UI用户中启用/禁用不同的过滤器,每个过滤器由单独的文件表示.我目前有(尽管迭代多次,它只加载一个): func beginRequestWithExtensionContext(context: NSExtensionContext) { var items = Array <NSExtension 是否可以从Content Blocker Extension返回多个 JSON文件?在我的UI用户中启用/禁用不同的过滤器,每个过滤器由单独的文件表示.我目前有(尽管迭代多次,它只加载一个):
func beginRequestWithExtensionContext(context: NSExtensionContext) {    var items = Array <NSExtensionItem>()    let resources = ["a","b","c"]    for resource in resources {        let url = NSBundle.mainBundle().URLForResource(resource,withExtension: "Json")        if let attachment = NSItemProvIDer(contentsOfURL: url) {            let item = NSExtensionItem()            item.attachments = [attachment]            items.append(item)        }    }    context.completeRequestReturningItems(items,completionHandler: nil)}

我尝试过多个项目和一个包含多个附件的项目.如果不可能有单独的文件,任何组合多个(或以编程方式生成)的方法?

解决方法 可以有多个JsON文件并将其用于Content Blocker扩展.

1)将多个扩展项传递给completeRequestReturningItems方法时引发SFContentBlockerErrorDomain

2)无法将多个附件附加到NSExtension,对源代码的评论说,附件并不是一组备用数据格式/类型,而是一个包含在社交媒体帖子中的集合.这些项始终是键入的NSItemProvIDer.我估计你不能添加多个Json数据作为附件,因为它们不是一系列用于创建消息的附件.

我的解决方案(已验证可行):

可以使用item(NSData)和typeIDentifIEr初始化NSItemProvIDer.

let aData = NSData(contentsOfURL: NSBundle.mainBundle().URLForResource("a",withExtension: "Json")!)let bData = NSData(contentsOfURL: NSBundle.mainBundle().URLForResource("b",withExtension: "Json")!)aJsON = `convert aData to JsON`bJsON = `convert bData to JsON`combinedJsON = `aJsON + bJsON`combinedData = 'convert combinedJsON to NSData'let attachment = NSItemProvIDer(item: combinedData,typeIDentifIEr: kUTTypeJsON as String)

现在,您可以根据您的偏好创建带附件的组合数据.

总结

以上是内存溢出为你收集整理的iOS内容阻止扩展加载多个JSON文件全部内容,希望文章能够帮你解决iOS内容阻止扩展加载多个JSON文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1105128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存