如何在flutter中打开一个link来打电话或发邮件(tel:和mailto:)。使用 flutter_webview_plugin
How to open a link to call or Mail (tel: and mailto:) in flutter. Using flutter_webview_plugin
我正在使用 flutter_webview_plugin 创建一个 webview 应用程序。我正在努力允许该应用程序启动 phone 调用和 mailto 链接。当我使用 webview_flutter 时,我得到底部菜单并且顶部的地址栏没有消失
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
const String _url = 'mailto:example@example.com';
void main() => runApp(
const MaterialApp(
home: Material(
child: Center(
child: ElevatedButton(
onPressed: _launchURL,
child: Text('Show Flutter homepage'),
),
),
),
),
);
void _launchURL() async {
if (!await launch(_url)) throw 'Could not launch $_url';
}
我想出了这个简单的解决方案,只需在您的 initState 中添加这几行代码,如果需要,您可以添加 'mailto:' 和 'sms'。
final flutterWebviewPlugin = new FlutterWebviewPlugin();
flutterWebviewPlugin.onUrlChanged.listen((String url) {
if (url.contains("tel:")) launch(url);
});
我正在使用 flutter_webview_plugin 创建一个 webview 应用程序。我正在努力允许该应用程序启动 phone 调用和 mailto 链接。当我使用 webview_flutter 时,我得到底部菜单并且顶部的地址栏没有消失
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
const String _url = 'mailto:example@example.com';
void main() => runApp(
const MaterialApp(
home: Material(
child: Center(
child: ElevatedButton(
onPressed: _launchURL,
child: Text('Show Flutter homepage'),
),
),
),
),
);
void _launchURL() async {
if (!await launch(_url)) throw 'Could not launch $_url';
}
我想出了这个简单的解决方案,只需在您的 initState 中添加这几行代码,如果需要,您可以添加 'mailto:' 和 'sms'。
final flutterWebviewPlugin = new FlutterWebviewPlugin();
flutterWebviewPlugin.onUrlChanged.listen((String url) {
if (url.contains("tel:")) launch(url);
});