📜  在Flutter拨打电话(1)

📅  最后修改于: 2023-12-03 14:51:16.052000             🧑  作者: Mango

在Flutter中拨打电话

在Flutter中,我们可以使用url_launcher插件来实现拨打电话的功能。该插件支持拨打电话、发送短信、发送邮件、打开链接等多种操作。

安装插件

pubspec.yaml文件中添加url_launcher插件:

dependencies:
  flutter:
    sdk: flutter
  url_launcher: ^6.0.3

然后在终端中执行flutter packages get命令即可安装该插件。

示例代码
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '拨打电话示例',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('拨打电话示例'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            _launchPhone();
          },
          child: Text('拨打电话'),
        ),
      ),
    );
  }

  /// 拨打电话
  _launchPhone() async {
    const url = 'tel:10086'; // 电话号码
    if (await canLaunch(url)) { // 判断是否能够拨打电话
      await launch(url);
    } else {
      throw '无法拨打电话 $url';
    }
  }
}

上面的代码中,首先在MyHomePagebody中添加了一个ElevatedButton,用于点击后触发拨打电话的操作。当用户点击该按钮时,程序会调用_launchPhone()方法,该方法会通过url_launcher插件打开电话应用,并传递电话号码的URL。

注意事项
  1. 在Android上,需要在AndroidManifest.xml文件中添加访问电话的权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
  1. 在iOS上,需要在Info.plist文件中添加访问电话的权限:
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>tel</string>
</array>
<key>NSAllowsTelephoneCalls</key>
<string>YES</string>
总结

通过url_launcher插件,我们可以很方便地在Flutter中实现拨打电话的功能。同时,在使用该插件时需要注意在Android和iOS上的权限配置。