canOpenURL schlägt für systemweite URL-Schemas fehl
Ich bin mit iOS 9b5.
In meiner app, wenn ein Gerät kann einen Anruf tätigen, ich möchte die Farbe des Textes, blau, so sieht es aus arbeitsfähiger. Wenn nicht, lasse ich es zu schwarz.
Um zu bestimmen, den Fähigkeiten der Geräte, die ich benutze:
[[UIApplcation sharedApplication] canOpenURL:@"telprompt://5555555555"]
Wie wir alle wissen, wird iOS 9 muss wir whitelist alle URL-Schemata, die wir in unserer app als privacy-Maßnahme.
Habe ich diese in meiner Info.plist:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>telprompt</string>
</array>
Egal was ich mache, ich bekomme immer noch canOpenURL: Fehler bei URL: "telprompt://" - Fehler: "(null)". Ich habe versucht tel://- und sms://, und ich kann nicht scheinen, um zu vermeiden, dass syslog-Warnung.
Weiß jemand von einer Möglichkeit zu erkennen, ob oder ob nicht, kann ein Gerät einen Anruf wtihout auslösen diese Warnungen?
InformationsquelleAutor der Frage djibouti33 | 2015-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denken, Sie brauchen könnte, zu versuchen, diese auf einem tatsächlichen Gerät, oder einfach nur versuchen Sie es erneut. Nur ich habe diese Arbeit an meinem iPhone 5, es sieht aus wie Sie nicht sogar brauchen, um es in den LSApplicationQueriesSchemes. Wenn die app Xcode 7 Beta 6 und verwenden Sie canOpenURL oder openURL wie unten, es scheint zu funktionieren Prima auf dem Gerät.
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:555-555-5555"]]
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:555-555-5555"]]
Auf dem iOS-sim bekomme ich noch die Fehlermeldung:
LaunchServices: FEHLER: Es gibt keine eingetragene handler für das URL-Schema " tel
-canOpenURL: Fehler bei URL: "tel:555-555-5555" - Fehler: "Diese Anwendung ist nicht erlaubt, die Abfrage-Schema "tel"
InformationsquelleAutor der Antwort Polar Bear
Was ich bisher entdeckt ist, dass wenn die Konsole meldet
-canOpenURL: failed for URL: "xxx://" - error: "(null)"
es tatsächlich funktioniert. Sobald es ein anderer Fehler alsnull
ist, kann es nicht funktionieren. Wenn der Fehler"This app is not allowed to query for scheme xxx"
dann müssen Sie diese Regelung zu Ihrer app .plist:Seltsame Verhalten, dass die Ausgabe in der Konsole sieht aus wie ein Fehler, obwohl es keine ist, in der Tat.
InformationsquelleAutor der Antwort endowzoner
Ich habe den gleichen Fehler in IOS9 Geräte. Also ich habe folgenden code-snippet, um diesen Fehler zu vermeiden.
InformationsquelleAutor der Antwort Anooj VM
Als iOS9 deprecates stringByAddingPercentEscapesUsingencoding, kann Folgendes verwendet werden, um reinigen Sie den telprompt: URL.
InformationsquelleAutor der Antwort Steve Forbes
In iOS9 ich bin mit diesem code, und es funktioniert:
Meine Info.plist
InformationsquelleAutor der Antwort Rincha
versuchen, diese:
InformationsquelleAutor der Antwort Muhammad Jabbar
Versuchen Sie, dieses auf einem realen Gerät, statt des Simulators. Keine Notwendigkeit, fügen Sie
LSApplicationQueriesSchemes
für dietel
Schema.InformationsquelleAutor der Antwort maxkonovalov