以下のURLはiOS 8.3以下では開きますが、iOS 9では動作しません。
let instagramURL = NSURL(string: "instagram://app")
URL が開かないのはなぜですか?
ベストアンサー1
LSApplicationQueriesSchemes
iOS 9 では、URL スキームの処理に小さな変更が加えられました。のキーを使用してアプリが呼び出す URL をホワイトリストに登録する必要がありますInfo.plist
。
こちらの投稿をご覧ください:http://awkwardhare.com/post/121196006730/quick-take-on-ios-9-url-scheme-changes
主な結論は次のとおりです。
ホワイトリストにない URL で「canOpenURL」メソッドを呼び出すと、このスキームを処理するように登録されたアプリがインストールされている場合でも、「NO」が返されます。「このアプリはスキーム xxx のクエリを許可されていません」という syslog エントリが表示されます。
ホワイトリストにない URL で「openURL」メソッドを呼び出すと、何も表示されずに失敗します。「このアプリはスキーム xxx のクエリを許可されていません」という syslog エントリが表示されます。
著者はまた、これは OS のバグであり、Apple は後続のリリースでこれを修正するだろうと推測しています。