Как запустить функцию после n-го запуска приложения или через n дней?

-2

Я хочу запустить функцию/установить логическое значение после того, как пользователь открыл приложение в течение n-го раза (n - любое число, которое я хочу).

Аналогично, я хочу запустить функцию/установить логическое значение после n дней с момента первого запуска.

Я думал о создании основы для этого, но я не уверен, с чего начать. Существуют ли какие-либо существующие рамки /Cocoapods, которые это делают? Если нет, может кто-нибудь дать мне несколько советов/предложений о том, как я мог бы это сделать?

  • 0
    Каждый раз, когда запускается ваш скрипт, добавляйте значение в файл. Затем, если значение становится достаточно большим, запустите функцию и сбросьте значение. Надеюсь это поможет!
Теги:
xcode
frameworks
cocoapods

2 ответа

1
Лучший ответ

Я бы порекомендовал вам использовать UserDefaults для отслеживания того, сколько раз пользователь запускал ваше приложение. Существует инфраструктура iRate, которая позволяет вам выбирать, сколько запуска приложений и/или дней, чтобы заставить пользователя оценивать ваше приложение. Чтобы отслеживать количество дней с момента установки и количество раз, которое было запущено, вы можете сделать что-то подобное

//FUNCTION для вызова из метода appDelegate didFinishLaunching

func trackUsage() {
 let defaults = UserDefaults.standard
 let installationDate = defaults.object(forKey: "installationDate") as? Date
 if installationDate == nil { // this is the first launch of the app
   defaults.set(Date(), forKey: "installationDate")
 }
 let usageCount = defaults.integer(forKey: "usageCount") ?? 0
 defaults.set(usageCount + 1, forKey: "usageCount")
 defaults.synchronize()
}

то перед вызовом функции вы можете:

if defaults.integer(forKey: "usageCount") ?? 0 > 10 {
    // the app has been launched at least 10 times
}
  • 0
    Спасибо за предложение! Моя первоначальная мысль была чем-то вроде этого. Приятно знать, что я на правильном пути, ха-ха.
0

Проще всего было бы использовать UserDefaults. Установите его в viewDidLoad вашего основного ViewController.

func setNumberOfStarts(){
let defaults = UserDefaults.standard
//will return 0 if not set previously 
var numberOfStarts: Int = defaults.integer(forKey: "starts") 
numberOfStarts = numberOfStarts + 1

defaults.set(numberOfStarts, forKey: "starts")
}

Запросите его там, где это необходимо.

func getNumberOfStarts() -> Int{
let defaults = UserDefaults.standard
//will return 0 if not set previously 
let numberOfStarts: Int = defaults.integer(forKey: "starts") 
return numberOfStarts
}

Делайте с результатами по мере необходимости.

let MAXIMUM_STARTS: Int = 10
func startedEnough() -> Bool{
    var enough = false
    let defaults = UserDefaults.standard
    let numberOfStarts: Int = defaults.integer(forKey: "starts")
    if numberOfStarts > MAXIMUM_STARTS {
        enough = true
    }
    return enough
} 
  • 0
    Извините, LastMove Я все еще печатал и видел, что вы уже опубликовали.
  • 0
    Спасибо за предложение! Я попробую!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню