Перенос данных из проекта в виджет в swift - PullRequest
0 голосов
/ 03 мая 2018

В моем проекте мне нужно отправить идентификаторы пользователя на виджет в iOS. Но для этого мой пользователь должен открыть приложение один раз. Без открытия информация остается только 1 день, после чего исчезает, и виджет перестает отображать информацию и ожидает открытия приложения. Для этого я использовал appGroup.
Как правильно переносить данные из моего проекта в виджет?

AppGroups

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Для этого я использовал 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")
}

И вы используете тот же подход для передачи данных наоборот (из виджета в проект).

0 голосов
/ 03 мая 2018

Вам нужно установить значение словаря в пользовательских значениях по умолчанию и прочитать его в виджете, как это

var dic:[String:String] = ["DateStr":"ID"]

получить дату в виджете и прочитать значение по умолчанию, если оно существует, и найти соответствующий DateStr

Примечание обновляйте dic каждый раз, когда вы открываете приложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...