142

iOS 8.3 以前では以下の URL が開きますが、iOS 9 では動作しません。

let instagramURL = NSURL(string: "instagram://app")

URLが開かないのはなぜですか?

4

14 に答える 14

25

TestA と TestB の 2 つのアプリを想定しています。TestB は、TestA がインストールされているかどうかを照会したいと考えています。「TestA」は、その info.plist ファイルで次の URL スキームを定義します。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>testA</string>
        </array>
    </dict>
</array>

2 番目のアプリ「TestB」は、次の呼び出しによって「TestA」がインストールされているかどうかを確認しようとします。

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"TestA://"]];

しかし、これは iOS9 では通常 NO を返します。これは、"TestA" を TestB の info.plist ファイルの LSApplicationQueriesSchemes エントリに追加する必要があるためです。これは、次のコードを TestB の info.plist ファイルに追加することによって行われます。

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>TestA</string>
</array>

実際の実装はこちらにあります: https://github.com/gatzsche/LSApplicationQueriesSchemes-Working-Example

于 2015-06-25T10:34:13.280 に答える
4

共有ダイアログからの Facebook 共有は、@Matthieu の回答があっても失敗します (残りのソーシャル URL では 100% 正しい)。Facebook SDK から反転した一連の URL を追加する必要がありました。

<array>
        <string>fbapi</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
        <string>fb-messenger-api</string>
        <string>twitter</string>
        <string>whatsapp</string>
        <string>wechat</string>
        <string>line</string>
        <string>instagram</string>
        <string>kakaotalk</string>
        <string>mqq</string>
        <string>vk</string>
        <string>comgooglemaps</string>
        <string>fbapi20130214</string>                                                    
        <string>fbapi20130410</string>                                                     
        <string>fbapi20130702</string>                                                    
        <string>fbapi20131010</string>                                                    
        <string>fbapi20131219</string>                                                    
        <string>fbapi20140410</string>                                                     
        <string>fbapi20140116</string>                                                     
        <string>fbapi20150313</string>                                                     
        <string>fbapi20150629</string>
    </array>
于 2015-10-12T11:03:35.267 に答える
1

9.0.x のジェイルブレイクされた電話には、URL スキームを破るバグがあったことに注意することが重要です。ジェイルブレイクされたデバイスを実行している場合は、Cydia で Patcyh を更新してください。

于 2015-10-27T22:03:05.713 に答える