openViber static method

Future<bool> openViber(
  1. String phoneNumber, {
  2. BuildContext? context,
})

Viber chat

Implementation

static Future<bool> openViber(
  String phoneNumber, {
  BuildContext? context,
}) async {
  try {
    final cleanNumber = _cleanPhoneNumber(phoneNumber);

    String viberNumber = cleanNumber;
    if (viberNumber.startsWith('0')) {
      viberNumber = '84${viberNumber.substring(1)}';
    }

    final uri = Uri.parse('viber://chat?number=$viberNumber');

    if (await canLaunchUrl(uri)) {
      await launchUrl(uri, mode: LaunchMode.externalApplication);
      return true;
    } else {
      if (context != null && context.mounted) {
        _showError(context, 'Không thể mở Viber');
      }
      return false;
    }
  } catch (e) {
    if (context != null && context.mounted) {
      _showError(context, 'Lỗi: $e');
    }
    return false;
  }
}