【发布时间】:2017-02-09 09:16:03
【问题描述】:
有什么方法可以从 iOS 应用程序的 Notification-Service-Extension 实例中获取保存在沙盒中的数据?我想在传递 contenhandler 之前从数据库中获取一些数据。
我从内部测试过
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
...
print("NotificationService didReceive UNNotificationRequest, contentHandler: \(contentHandler)")
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let filePath = "\(documentsPath)/Database.db"
print(" documentsPath: \(filePath)")
let fileManager = FileManager.default
var isDir : ObjCBool = false
if fileManager.fileExists(atPath: filePath, isDirectory:&isDir) {
if isDir.boolValue {
print(" file exists and is a directory")
} else {
print(" file exists and is a NOT a directory")
}
} else {
print("file does not exist")
}...
在我看来,扩展程序有自己的沙盒和自己的文档文件夹。
应用使用文件夹“Application”,而扩展使用文件夹“PluginKitPlugin”,均位于“/var/mobile/Containers/Data/”内。
更新:似乎无法访问应用沙箱容器。
【问题讨论】:
标签: ios ios10 serviceextension