Context
Я работаю над приложением Swift iOS в Xcode (iOS 13 и Xcode 11.3).
Цель
По сути, изнутри мое приложение, я хочу иметь возможность открыть URL-адрес частного канала подкастов в приложении iOS Podcasts (чтобы добавить его в качестве новой подписки).
Что я делаю
My понимание состоит в том, что это можно сделать, используя метод open (_: options: завершениеHandler:) , определенный для класса UIApplication
, и предварительно исправив мой URL с помощью podcast://
. Вот пример:
// My URL
let url = URL(string: "podcast://https://username:password@example.com/private-podcast-feed")!
// From inside a `UIViewController` method...
UIApplication.shared.open(url, options: [:]) { (success: Bool) in
// ... handle the result
}
Проблема
Приведенный выше код открывает приложение iOS Podcasts и вызывает окно оповещения Add a Show by URL...
с предварительно заполненным вводом, но оригиналом URL теперь имеет префикс http://
; то есть http://https://username:password@example.com/private-podcast-feed
(см. прикрепленный снимок экрана внизу для примера).
С точки зрения "взаимодействия с пользователем", это поведение ужасно, так как большинство людей не заметят, и операция не удастся.
Потенциальным способом решения этой проблемы было бы пропустить протокол https://
в моем приложении и использовать предварительно заполненный http://
и иметь на своем сервере 301 Redirect
(я не пробовал его видеть хотя Podcasts следует перенаправлениям), но это не очень хорошо для моего варианта использования, так как мой URL содержит учетные данные.
Мой вопрос
Кто-нибудь знает об этом?