web-dev-qa-db-ja.com

メソッド 'application:openURL:options:'が呼び出されていません

カスタムスキームを使用して、Webページからアプリを開こうとしています。アプリは開いていますが、次のメソッドは呼び出されていません:

func application(_ app: UIApplication, open url: URL, options [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    // This is not called
}

俺の info.plistは次のようになります。

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>MyApp</string>
            </array>
            <key>CFBundleURLName</key>
            <string>url here</string>
        </dict>
    </array>

プロジェクトはXcode 11.1で作成され、私はiOS 13でテストしています。

7
Jabson

Safariショートカットを使用してアプリケーションを起動すると、openURLContextsコールバックが複数回発生して問題が発生しました。

2019-12-09 18:33:41.257088+0800 OCTEST[5019:1468254] openURLContextsopenURLContexts {(
    <UIOpenURLContext: 0x2805a71c0; URL: appoctest://action=123123123; options: <UISceneOpenURLOptions: 0x280bd4750; sourceApp: (null); annotation: (null); openInPlace: NO>>
)}
2019-12-09 18:33:42.022132+0800 OCTEST[5019:1468254] openURLContextsopenURLContexts {(
    <UIOpenURLContext: 0x2805a6d40; URL: appoctest://action=123123123; options: <UISceneOpenURLOptions: 0x280bd6f70; sourceApp: (null); annotation: (null); openInPlace: NO>>
)}
0
Sheldon