Anwendung: openURL: sourceApplication: Annotation return NO versus YES

8

Ich registriere eine Anwendung, die über URL geöffnet werden kann, und bin mit

verwechselt

application:openURL:sourceApplication:annotation

Laut Dokumentation sollten Sie YES zurückgeben, wenn Sie die URL unterstützen und NEIN, wenn nicht. Was nützt das aber? Ich gebe NO zurück, wenn die URL fehlerhaft ist oder nicht unterstützt wird, aber die App immer noch geöffnet wird, als ob nichts schief gelaufen wäre. Wer hört auf diese BOOL Rendite und was machen sie damit? Gibt es trotzdem, um zu verhindern, dass die App geöffnet wird, wenn die URL fehlerhaft ist oder nicht unterstützt wird?

    
Chris Wagner 13.09.2011, 21:54
quelle

1 Antwort

4

Die Dokumentation besagt, dass Sie YES zurückgeben, wenn Sie den URI erfolgreich geöffnet haben, und NO , wenn Sie dies nicht getan haben. Beachten Sie, dass " erfolgreich war oder nicht geöffnet werden konnte " ist semantisch anders als " kann oder kann nicht öffnen ". Leider gibt es keine Möglichkeit, den Start der App zu verhindern. Wenn ein Schema registriert wird, wird es gestartet, unabhängig davon, ob der Rest des URI korrekt formatiert ist.

UIApplication hat zwei Methoden: canOpenURL: und openURL: . Der erste ONLY überprüft, ob das Schema unterstützt wird (nicht die vollständige URL), wobei letzterer die App startet und das Ergebnis des Anwendungsdelegaten zurückgibt.

Um Ihre Frage zu beantworten: Die andere App, die [[UIApplication sharedApplication] openURL:url] aufruft, ist derjenige, der das Ergebnis Ihres Delegierten abhört

    
Nick 09.08.2012, 20:59
quelle