Flutter Как открыть приложение через URI схему

Подскажите пожалуйста как в приложении flutter запустить приложение сбербанка. Я использую подход через URI схему String sberbankUrlSchemeLogin = 'sberbankonline://'; Приложение пытается открыться видно логотип Сбербанка но пишет что такой ссылки не существует и выкидывает.


Ответы (1 шт):

Автор решения: MiT

Чтобы была поддержка и ios, и android, есть только такой способ:

import 'package:url_launcher/url_launcher.dart';

Future<void> openSberbank() async {
  final Uri url = Uri.parse('sberbankonline://');

  try {
    if (await canLaunchUrl(url)) {
      await launchUrl(url);
    } else {
      await _openSberbankWeb();
    }
  } catch (e) {
    // Обработайте ошибку, например, покажите сообщение пользователю.
    print('Ошибка при открытии Сбербанк Онлайн: $e');
  }
}

Future<void> _openSberbankWeb() async {
  final Uri url = Uri.parse('https://online.sberbank.ru');

  try {
    if (await canLaunchUrl(url)) {
      await launchUrl(url);
    } else {
      // Обработайте ошибку, например, покажите сообщение пользователю.
    }
  } catch (e) {
    // Обработайте ошибку, например, покажите сообщение пользователю.
    print('Ошибка при открытии Сбербанк Онлайн: $e');
  }
}

Но нужно учитывать что у сбера есть разные URI-схемы и обычно после // должно быть что-то ещё:

sber://
sberbankonline://
sbolonline://
ru.sberbankmobile://
→ Ссылка