open_document_handler.dart
832 Bytes
import 'package:appframe/services/dispatcher.dart';
import 'package:url_launcher/url_launcher.dart';
class OpenDocumentHandler extends MessageHandler {
@override
Future<dynamic> handleMessage(params) async {
if (params is! Map<String, dynamic>) {
throw Exception('参数错误');
}
final url = params['url'] as String;
if (url.isEmpty) {
throw Exception('参数错误');
}
return await _launchInBrowser(Uri.parse(url));
}
Future<bool> _launchInBrowser(Uri url) async {
if (await canLaunchUrl(url)) {
return await launchUrl(url, mode: LaunchMode.platformDefault);
} else {
throw Exception('Could not launch $url');
}
/*if (!await launchUrl(url, mode: LaunchMode.externalNonBrowserApplication)) {
throw Exception('Could not launch $url');
}*/
}
}