Ich habe zwei iPhone-Apps, die ich erstellt habe, die ihre eigenen benutzerdefinierten URLs haben und sich im App Store befinden. Lassen Sie uns sie App A und App B nennen.Bereitstellen einer Failover-URL, wenn ein benutzerdefiniertes URL-Schema nicht behandelt werden kann
App A-Schnittstelle ist eine UIWebView, die Markup von einem Remote-Server erhält, die ich ausführen. Das Verhalten, das ich in App A implementieren möchten, ist dies:
Wenn ein Link mit der benutzerdefinierten URL für App B und App B auf dem Gerät, offene App B. installiert erzeugt wird, wird dies leicht geschehen durch Überprüfung
UIApplication canOpenURL:
und, wenn esYES
zurückgibt,UIApplication openURL:
.Wenn ein Link mit der benutzerdefinierten URL für App B und App B erzeugt wird, wird nicht auf dem Gerät installiert ist, gehen Sie auf die App-Store-Seite für App B.
Hier ist, wie ich plane, zum Umgang mit der zweiten:
- einen URL-Parameter in der benutzerdefinierten URL enthalten, die den Link zum App Store-Seite für App B. enthält Wenn
canOpenURL:
kehrtNO
für die gesamte URL, öffnen Sie die von diesem Parameter angegebene URL statt .
Das sollte funktionieren. Aber es fühlt sich ein bisschen hacky an, weil es bedeutet, dass App A wissen muss, wie man die benutzerdefinierte URL für App B analysiert, um den alternativen Link zu erhalten. Dies scheint eine weniger als ideale Verkapselung zu sein. Gibt es eine andere Konvention, die ich verwenden sollte, um die Failover-URL bereitzustellen, wenn canOpenURL:
NO
zurückgibt?