In der App-Erweiterung gibt es eine Möglichkeit, Bilder aus der enthaltenen App zu erhalten, die in/var/mobile/Container/Daten/Anwendung // Dokumente gespeichert ist // Mappe?Wie kann App-Erweiterung Dateien in der App App Doucments/Ordner
3
A
Antwort
4
Um Dateien zu App-Erweiterung zur Verfügung stellen Sie Group Path
verwenden müssen, wie App-Erweiterung nicht App-Dokumentordner zugreifen können, für die Sie folgen müssen diese Schritte,
- aktivieren App Gruppen aus Projekteinstellungen-> Fähigkeiten.
- Fügen Sie eine Gruppenerweiterung wie
group.yourappid
hinzu. Dann folgenden Code verwenden.
NSString *docPath=[self groupPath]; NSArray *contents=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:docPath error:nil]; NSMutableArray *images=[[NSMutableArray alloc] init]; for(NSString *file in contents){ if([[file pathExtension] isEqualToString:@"png"]){ [images addObject:[docPath stringByAppendingPathComponent:file]]; } } -(NSString *)groupPath{ NSString *appGroupDirectoryPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:group.yourappid].path; return appGroupDirectoryPath; }
Sie können wie pro Ihre Bilderweiterungen Sie generieren hinzufügen oder die Pfaderweiterung ändern.
Hinweis - Denken Sie daran, dass Sie die Bilder im Gruppenordner und nicht im Ordner "Dokumente" erstellen müssen, damit sie sowohl für die App als auch für die Erweiterung verfügbar sind.
Prost.
Swift 3 Update
let fileManager = FileManager.default
let url = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "YOUR_GROUP_ID")?.appendingPathComponent("logo.png")
// Write to Group Container
if !fileManager.fileExists(atPath: url.path) {
let image = UIImage(named: "name")
let imageData = UIImagePNGRepresentation(image!)
fileManager.createFile(atPath: url.path as String, contents: imageData, attributes: nil)
}
// Read from Group Container - (PushNotification attachment example)
// Add the attachment from group directory to the notification content
if let attachment = try? UNNotificationAttachment(identifier: "", url: url!) {
bestAttemptContent.attachments = [attachment]
// Serve the notification content
self.contentHandler!(self.bestAttemptContent!)
}
Vielen Dank dieses total funktioniert! Jetzt muss ich alle Bilder in AppGroup // Dokumente/Ordner übertragen. –