ios/Podfile.lock
.. .. @@ -69,6 +69,8 @@ 69 69 - Flutter 70 70 - FlutterMacOS 71 71 - SwiftyGif (5.4.5) 72 + - url_launcher_ios (0.0.1):73 + - Flutter72 74 - vibration (1.7.5): 73 75 - Flutter 74 76 .. .. @@ -88,6 +90,7 @@ 88 90 - record_ios (from `.symlinks/plugins/record_ios/ios`) 89 91 - share_plus (from `.symlinks/plugins/share_plus/ios`) 90 92 - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) 93 + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)91 94 - vibration (from `.symlinks/plugins/vibration/ios`) 92 95 93 96 SPEC REPOS: .. .. @@ -128,6 +131,8 @@ 128 131 :path: ".symlinks/plugins/share_plus/ios" 129 132 shared_preferences_foundation: 130 133 :path: ".symlinks/plugins/shared_preferences_foundation/darwin" 134 + url_launcher_ios:135 + :path: ".symlinks/plugins/url_launcher_ios/ios"131 136 vibration: 132 137 :path: ".symlinks/plugins/vibration/ios" 133 138 .. .. @@ -151,6 +156,7 @@ 151 156 share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a 152 157 shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb 153 158 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 159 + url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b154 160 vibration: 8e2f50fc35bb736f9eecb7dd9f7047fbb6a6e888 155 161 156 162 PODFILE CHECKSUM: 3c63482e143d1b91d2d2560aee9fb04ecc74ac7e lib/widgets/message_bubble.dart
.. .. @@ -5,6 +5,7 @@ 5 5 import 'package:flutter/material.dart'; 6 6 import 'package:flutter/services.dart'; 7 7 import 'package:flutter_markdown/flutter_markdown.dart'; 8 +import 'package:url_launcher/url_launcher.dart';8 9 import 'package:intl/intl.dart'; 9 10 10 11 import '../models/message.dart'; .. .. @@ -165,13 +166,10 @@ 165 166 ), 166 167 onTapLink: (text, href, title) { 167 168 if (href != null) { 168 - Clipboard.setData(ClipboardData(text: href));169 - ScaffoldMessenger.of(context).showSnackBar(170 - SnackBar(171 - content: Text('Link copied: $href'),172 - duration: const Duration(seconds: 2),173 - ),174 - );169 + final uri = Uri.tryParse(href);170 + if (uri != null) {171 + launchUrl(uri, mode: LaunchMode.externalApplication);172 + }175 173 } 176 174 }, 177 175 ); macos/Flutter/GeneratedPluginRegistrant.swift
.. .. @@ -18,6 +18,7 @@ 18 18 import record_macos 19 19 import share_plus 20 20 import shared_preferences_foundation 21 +import url_launcher_macos21 22 22 23 func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 23 24 AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) .. .. @@ -33,4 +34,5 @@ 33 34 RecordMacOsPlugin.register(with: registry.registrar(forPlugin: "RecordMacOsPlugin")) 34 35 SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) 35 36 SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) 37 + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))36 38 } pubspec.lock
.. .. @@ -1061,6 +1061,30 @@ 1061 1061 url: "https://pub.dev" 1062 1062 source: hosted 1063 1063 version: "5.0.3" 1064 + url_launcher:1065 + dependency: "direct main"1066 + description:1067 + name: url_launcher1068 + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f81069 + url: "https://pub.dev"1070 + source: hosted1071 + version: "6.3.2"1072 + url_launcher_android:1073 + dependency: transitive1074 + description:1075 + name: url_launcher_android1076 + sha256: "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572"1077 + url: "https://pub.dev"1078 + source: hosted1079 + version: "6.3.29"1080 + url_launcher_ios:1081 + dependency: transitive1082 + description:1083 + name: url_launcher_ios1084 + sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0"1085 + url: "https://pub.dev"1086 + source: hosted1087 + version: "6.4.1"1064 1088 url_launcher_linux: 1065 1089 dependency: transitive 1066 1090 description: .. .. @@ -1069,6 +1093,14 @@ 1069 1093 url: "https://pub.dev" 1070 1094 source: hosted 1071 1095 version: "3.2.2" 1096 + url_launcher_macos:1097 + dependency: transitive1098 + description:1099 + name: url_launcher_macos1100 + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18"1101 + url: "https://pub.dev"1102 + source: hosted1103 + version: "3.2.5"1072 1104 url_launcher_platform_interface: 1073 1105 dependency: transitive 1074 1106 description: pubspec.yaml
.. .. @@ -35,6 +35,7 @@ 35 35 flutter_app_badger: ^1.5.0 36 36 connectivity_plus: ^7.1.0 37 37 in_app_purchase: ^3.2.3 38 + url_launcher: ^6.3.238 39 39 40 dev_dependencies: 40 41 flutter_test: