Ich bin mit meiner Widget-Entwicklung dazwischen. Da wir unsere App bereits mit Widget-Integration ausgestattet haben. Aber jetzt habe ich ein Problem mit dem heutigen Widget in iOS. Ich habe einen Code für zwei Fälle geschrieben. Das erste Mal, wenn das Widget zum ersten Mal mit dem Start der Anwendung geladen wird, ruft es den Web-Service auf und ruft Daten über das Internet ab. Anschließend speichern wir sie im Benutzerstandard für die spätere Verwendung.Meldung "Kann nicht geladen werden" im heutigen Widget
Jetzt, wenn das nächste Mal Benutzer das Benachrichtigungsmenü herunterziehen, zeigen wir unseren alten gespeicherten Inhalt zuerst dem Benutzer und dann holen wir es von Web-Service und speichern in Benutzer-Standard und dann Tabelle erneut laden.
Für oben genannten Betrieb, ich bin in einigen Fällen mit Inhaltsgrößenproblem für Tabelle, Flackern Problem und "unfähig zu laden" Nachricht konfrontiert.
Jetzt suchen Sie nach unten Code, ich mache einen Web-Aufruf in unten-Methode und nach der Antwort von Web-Service, ich nur Handle Abschluss Handler.
- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResultFailed
// If there's no update required, use NCUpdateResultNoData
// If there's an update, use NCUpdateResultNewData
[self getBookedAppointmentsNew:completionHandler];
}
Also bitte teilen Sie Ihre Erfahrungen und Ideen mit mir.
Nur um klar zu sein, rufen Sie Ihren Web-Service, und Sie rufen nicht den Completion-Handler, bis dieser Anruf beendet ist? –
Ja, ich mache das gleiche .. Ich rufe Web-Service auf und nach der Fertigstellung des Dienstes vervollständige ich es mit dem Completion-Handler. –
Eigentlich muss ich jedes Mal einen Web-Service-Aufruf machen, um meine neuesten Ereignisse für die Kunden abzurufen, aber bis ich sie abrufe, versuche ich, die zuvor abgerufenen Daten den Kunden zu zeigen. Es besteht also keine Möglichkeit, dass das Bildschirm flackert. Ich möchte die Ansicht mit neuen Inhalten ohne irgendwelche Nebenwirkungen aktualisieren. –