如何在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 时,我得到底部菜单并且顶部的地址栏没有消失

尝试使用 the url launcher package

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);
});