读取/写入可从iOS应用扩展程序访问的数据

时间:2017-05-08 19:13:55

标签: ios swift ios-extensions ios-app-group safari-content-blocker

我正在使用iOS内容拦截器,但我想让用户选择要阻止的列表(广告,曲目,成人网站等)。我发现应用扩展程序和包含应用程序的捆绑包是分开的,无法访问彼此的文件,因此需要共享容器。我创建了一个应用程序组,但似乎我在那里写的并没有实际写入。我试图做的是从包中读取.json文件,然后将其写入内容阻止程序扩展可以访问的sharedJson.json文件。

func writeJsonToSharedJson(arrayOfStrings:[String]) -> Bool {
    let composedString = arrayOfStrings.joined(separator: "\n")
    let sharedJsonPath = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.alexspear.BlockerTestGroup")?.appendingPathComponent("sharedJson.json")
    //let sharedJsonPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("sharedJson.json")
    do {
        try composedString.write(to: sharedJsonPath!, atomically: true, encoding: .utf8)
    }
    catch {
        print("Could not write to sharedJson.json\n")
        return false
    }
    return verifyJsonWrite()
}

结果是通过verifyJsonWrite()函数,没有任何东西。假设您可以在应用程序组容器中创建文件,我是否错误?我也尝试过使用FileManager的createFile函数,结果相同。

0 个答案:

没有答案