Swift 5 App im Hintergrund erkennen (app moved to background)

Mit diesen Codzeilen kann man erkennen, ob eine App in den Hintergund geschoben wird.

 override func viewDidLoad() {
        super.viewDidLoad()

        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.didEnterBackgroundNotification, object: nil)

    }

    @objc func appMovedToBackground() {
        print ("App moved to Background")
    }

Swift 5 App im Vorderung erkennen (app moved to foreground)

Manchmal ist es sinnvoll zu erkenne, ob die eigene App in den Vordergrund geschoben wird. Mit diesen paar Codezeilen ist das leicht zu ermitteln.

   override func viewDidLoad() {
        super.viewDidLoad()
        

       

        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(appMovedToForeground), name: UIApplication.willEnterForegroundNotification, object: nil)

    }

    @objc func appMovedToForeground() {
        //do stuff
    }

Swift 5 tap gesture Geste

Diese paar Zeilen Code helfen schnell zu verstehen wie man einem Image die Tap Geste beibringt.

   
override func viewDidLoad() {
        super.viewDidLoad()

        self.imgPlacesPic.isUserInteractionEnabled = true;
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapGesture))
        imgPlacesPic.addGestureRecognizer(tapGesture)
    }

    @objc func tapGesture() {

        performSegue(withIdentifier: "FromMainToImages", sender: self)
    }

Swift 5 Notification Center lokale Benachrichtigung darstellen

Mit diese kurzen Sample kann man das einfach mal eben ausprobieren. Dieses Snippet unter die viewDidLoad Methode packen und von dort aus aufrufen.

 override func viewDidLoad() {
        super.viewDidLoad()

        self.SendLocalNotification(Title: "Titel der Benachrichtiung", Body: "Inhalt der Nachricht"()
}

Hier einfach mal kurz zusammengefasst.
 func SendLocalNotification(Title: String,Body : String)
    {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert,.sound]) { (granted, error) in
            print("...Fehler hier behandeln")

        }

        let content = UNMutableNotificationContent()
        content.title = Title
        content.body = Body
        content.sound = .default

        let date = Date().addingTimeInterval(10)
        let dateComponents = Calendar.current.dateComponents([.year,.month,.weekday, .hour,.minute,.second], from: date)
        print(date)
        let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

        let uuidString = UUID().uuidString
        let request = UNNotificationRequest(identifier: uuidString, content: content, trigger: trigger)
        center.add(request) { (error) in
            if error != nil {
                print (error?.localizedDescription ?? "")

            }
        }
    }

Shopware nach EuGH Urteil Cookies nur noch mit Einwilligung

Am heutigen Tag hat der Europäische Gerichtshof eine seit Jahren schwelende Rechtsfrage grundlegend beantwortet: Es ging um die Frage, ob für die rechtmäßige Verarbeitung von Cookies die Einwilligung der Seitenbesucher erforderlich ist.

Shopware bringt von Haus aus alles notwendige mit.

Einstellungen, Grundeinstellungen, Suche nach „Datenschutz“

Hier kann man folgende Einstellungen vornehmen:

Natürlich muss zuerst der Hinweis angezeigt werden. Cookies sind nach meinem Kenntnisstand erlaubt, jedoch nur, wenn diese technisch notwendig sind. Deshalb empfiehlt sich für mich der Cookie Hinweis Modus „Technisch notwendige Cookies erlaubt, bei restlichen nachfragen.“

Nach dem Speichern der Einstellungen nicht vergessen, den Shop cache zu leeren. Das geht über das Menü oder aber mit der Tastenkombination STRG-ALT-X.

Wenn man die Einstellungen dann vorgenommen hat, sieht das beim Aufrufen des Shops wie folgt aus:

Auf www.leckerstecker.de kann man sich das Ergebnis ansehen.

Shopware Amazon Pay funktioniert nicht

Na der Installation hatte ich eine Dauerschleife im Bestellvorgang, wenn ein Kunde mit Amazon Payment bezahlen wollte. Der Login hat fehlerfrei funktioniert – beim Bezahlen meldete Amazon, die Lieferadresse sei nicht zulässig.

Einfache Lösung:
Die Zahlungsart muss verknüpft werden – dabei die Sub-Shop Auswahl nicht vergessen.

Über Einstellungen > Zahlungsarten gelangt man zu den angebotenen Zahlungsarten und der Sub-Shop Auswahl

Das Timeout ist abgelaufen oder Das Ausführungstimeout ist abgelaufen

Bei Verwendung des Microsoft SQL Server Management Studio Tabellendesigners
kann es zu folgender Fehlermeldung kommen.

Das Timeout ist abgelaufen oder Das Ausführungstimeout ist abgelaufen

Das geschieht vor allem dann, wenn man am Design einer Tabelle, die bereits
eine grosse Datenmenge enthält etwas ändern möchte.

Auf dieser Seite können Sie das Standardverhalten des Designers bestimmen. Um auf die Einstellungen zuzugreifen, klicken Sie im Menü Extras auf Optionen, erweitern Sie den Ordner Designer , und klicken Sie dann auf Tabellen-Designer.

Timeoutwert für Verbindungszeichenfolge für Tabellen-Designer-Updates überschreiben.
Lässt zu, dass für die Aktionen des Tabellen-Designers ein neuer Timeoutwert festgelegt wird. Das kann hilfreich sein, wenn der Tabellen-Designer Auswirkungen auf eine große Tabelle hat und für die Änderung der Tabelle zusätzliche Zeit benötigt.