Приложение iOS, которое обрабатывает URL-адреса, не отображается в меню "Открыть в..." (например, в Safari)

При нажатии кнопки "Поделиться" в iOS Safari (либо на панели инструментов, либо при длительном нажатии на ссылку) я бы хотел, чтобы мое приложение отображалось как опция "Открыть в..." (например, "Открыть в новостях"). "), так что мое приложение - это другой тип веб-браузера - может открывать все http:// или же https:// URL является общим для Safari.

Я зарегистрировал тип документа "URL" (который я считаю правильным типом - пожалуйста, исправьте меня, если это предположение неверно!) В моем info.plist файла CFBundleDocumentTypes насколько я могу судить из документации Apple " Регистрация типов файлов, поддерживаемых вашим приложением", их технических вопросов и ответов и связанных с ними публикаций Stackru 1 2 3:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>appIcon320</string>
            <string>appIcon64</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>URL</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>   <!-- Note: I have also tried 'Viewer' -->
        <key>LSHandlerRank</key>
        <string>Owner</string>    <!-- Note: I have also tried 'Default' -->
        <key>LSItemContentTypes</key>
        <array>
            <string>public.url</string>
        </array>
    </dict>
</array>

Я также написал этот метод заглушки в AppDelegate.swift (хотя я думаю, что на самом деле это не имеет отношения к успеху этого первого этапа, когда мое приложение отображалось как опция "Открыть в..."):

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {opening-in-app-getting-uiapplicationlaunchoptionsurlkey-from-launchoptions?rq=1
    print("Received URL: \(url); from source: \(options[.sourceApplication] ?? "nil"); with annotation: \(options[.annotation] ?? "nil")")
    return true
}

... Однако мое приложение все еще не отображается как опция "Открыть в...". Я должен добавить, что значки приложений правильно связаны с приложением, и что info.plist Файл открывается нормально в Xcode, так что я могу подтвердить, что не поврежден.

Итак, у меня есть три вопроса:

  1. После долгого нажатия на ссылку и нажатия кнопки "Поделиться..." действительно ли тип документа, используемый Safari, является "URL"?

  2. Нажав на графическую кнопку на панели инструментов Safari, которая выглядит (как ее еще называют, кнопка "поделиться"), является ли тип документа общим для Safari, как и прежде, "URL"?

  3. Я написал CFBundleDocumentTypes правильно для документа типа URL? Или, если Safari делится чем-то другим, что это (и как я должен написать это)?

0 ответов

Другие вопросы по тегам