[SWIFT] Das Problem zu lösen, dass canOpenURL beim Ändern des Standardbrowsers / Mailers unter iOS14 und der Ergebnisse der Umfrage zur horizontalen Bereitstellung falsch wird

Voraussetzung Umgebung

Problemereignis

Beispielcode:

let url = URL(string: "https://qiita.com")!
guard UIApplication.shared.canOpenURL(url) else {
    return
}
UIApplication.shared.open(url, options: [:], completionHandler: nil)


Schritte zum Ändern des Standardbrowsers in Chrome

  1. Installieren Sie Chrome auf iOS 14-Geräten.
  2. Wählen Sie Einstellungen> Chrome.
  3. Eine Liste der Browser wird angezeigt. Wählen Sie daher Chrome aus.

Ursache

Wenn Sie den Standardbrowser unter iOS 14.0 oder höher auf etwas anderes als Safari (Chrome usw.) einstellen, gibt ** UIApplication.shared.canOpenURL () false zurück. ** ** **

Problemumgehung

** Dies kann vermieden werden, indem "https" und "http" in LSApplicationQueriesSchemes in Info.plist festgelegt werden. ** ** **

Verwandte Ereignisse

In iOS 14 können Sie auch den Standardmailer ändern. ** Ähnlich wie bei "mailto" **, wenn Sie es nicht zu LSApplicationQueriesSchemes hinzufügen, gibt "UIApplication.shared.canOpenURL ()" false zurück, wenn sich der Standardmailer geändert hat.

Horizontale Bereitstellungserhebung

Die obigen Informationen sind nützliche Informationen aus dem Artikel "Referenzlink" am Ende des Satzes. Ich möchte den Autoren meinen tiefen Dank aussprechen.

Auf der anderen Seite ist das Folgende das Ergebnis meiner eigenen zusätzlichen Forschung.

Telefon App "Tel" und "Telprompt" Schemata

"tel" ist in [Apple URL Schemes] dokumentiert (https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007899). Es ist ein Schema, das ist. "telprompt" ist ein undokumentiertes Schema.

Beide starten die Telefon-App unter iOS 14, ohne sie zu LSApplicationQueriesSchemes hinzuzufügen.

Übrigens habe ich mich gefragt: "Was ist, wenn ich die Standardeinstellung der Telefonanwendung in Zukunft ändern kann?". Also habe ich "tel" zu LSApplicationQueriesSchemes hinzugefügt, und es funktioniert auch dann einwandfrei, wenn ich es hinzufüge (natürlich?).

Brieftasche App "Schuhkarton" Schema

Undokumentiertes Schema. Die Wallet-App wird unter iOS 14 gestartet, ohne sie zu LSApplicationQueriesSchemes hinzuzufügen.

Einstellungen App

Dieses Schema ist "UIApplication.openSettingsURLString" anstelle einer Zeichenfolge, aber (natürlich) wird die Einstellungen-App unter iOS 14 gestartet, ohne sie zu den LSApplicationQueriesSchemes hinzuzufügen.

Verifizierungsergebnisse organisieren

Referenzlink

[IOS14] CanOpenURL wird beim Ändern des Standardbrowsers falsch Worauf Sie für iOS 14 achten sollten

Recommended Posts

Das Problem zu lösen, dass canOpenURL beim Ändern des Standardbrowsers / Mailers unter iOS14 und der Ergebnisse der Umfrage zur horizontalen Bereitstellung falsch wird
[IOS] canOpenURL wird in iOS14 falsch