Size: a a a

iOS Developers — русскоговорящее сообщество

2021 December 14

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
Господа, вопрос и по iOS, и по macOS
Как реализовать логин через браузер?
То есть юзверь на екране логина, тыкает кнопку, и его перебрасывает на страницу логина в браузере. Юзверь вводит свои данные, нажимает далее, и потом оказывается уже снова в приложении, уже залогиненный. Как такое можно по уму провернуть?
Использую SwiftUI как UI фреймворк(и собсно Swift как язык, на котором написано все)
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
Думаю через диплинки, но хз я, безопасно ли это
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
Inject функции в страницу браузера и обработка
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
Не совсем понял вас
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
Внутрь html части можно вставить свой кусочек js, который будет «дергать» функцию в основном коде
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
а зачем?
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
Чтобы получить callback. Или я не правильно понял вопрос?
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
ах да, забыл упомянуть
я могу повесить свой редирект прямо в урл логина
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
типо <site>?redirectUrl=<url>
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
Тогда можно и через deep/universal link
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
Хотя нет. Universal link не сработает на редирект, был не прав
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
а диплинки в sui есть?
в доке к .onOpenURL() говорится что это для юниверсала
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
Диплинки видимо нужно через AppKit/UIKit хендлить?
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
Конечно есть
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
А можете подсказать как мне найти такую штуку?)
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
в конкретно в sui - нет, но там вроде как
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
аналог к
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) async -> UIBackgroundFetchResult
но это не точно, я не настоящий сварщик в sui, больше по uikit
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
Да, как я и думал, нужно заюзать AppKit/UIKit
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
Ещё вопрос, а нормально ли бросить в конструктор к AppDelegate переменную, как референс, что бы можно было связать и функцию которая хендлит диплинк, и интерфейс на SUI?
источник

GO

GGorAA Official in iOS Developers — русскоговорящее сообщество
И какие вообще хорошие практики по связыванию функций внутри AppDelegate/UIDelegate(или как там правильно, хз) с SwiftUI интерфейсом, что бы они могли между собой "общаться"?
источник

IS

Igor Smirnov in iOS Developers — русскоговорящее сообщество
по моей практике appdelegate оборачивается в сервисы типа “AppService” и он уже реализует то, что надо. просто фасад для appdelegate
источник