Для этого я использовал appGroup.
Как правильно использовать перенос данных из моего проекта в
виджет
То, что вы сделали до сих пор (группировка приложений), является одним из шагов, которым вы должны следовать Далее, как упомянуто в Руководство по программированию расширений приложения - Обмен данными с вашим приложением :
После включения групп приложений, расширения приложения и содержащего его приложения
оба могут использовать API NSUserDefaults
для предоставления доступа пользователю
предпочтения. Чтобы включить этот общий доступ, используйте метод initWithSuiteName:
для создания нового объекта NSUserDefaults, передавая идентификатор
из общей группы .
Итак, что вам нужно сделать, это разрешить передачу данных с помощью UserDefautls
. Например:
if let userDefaults = UserDefaults(suiteName: "group.com.example.myapp") {
userDefaults.set(true, forKey: "myFlag")
}
таким образом вы можете передать его виджету:
if let userDefaults = UserDefaults(suiteName: "group.com.example.myapp") {
let myFlag = userDefaults.bool(forKey: "myFlag")
}
И вы используете тот же подход для передачи данных наоборот (из виджета в проект).