📅  最后修改于: 2023-12-03 14:51:16.052000             🧑  作者: Mango
在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';
}
}
}
上面的代码中,首先在MyHomePage
的body
中添加了一个ElevatedButton
,用于点击后触发拨打电话的操作。当用户点击该按钮时,程序会调用_launchPhone()
方法,该方法会通过url_launcher
插件打开电话应用,并传递电话号码的URL。
AndroidManifest.xml
文件中添加访问电话的权限:<uses-permission android:name="android.permission.CALL_PHONE" />
Info.plist
文件中添加访问电话的权限:<key>LSApplicationQueriesSchemes</key>
<array>
<string>tel</string>
</array>
<key>NSAllowsTelephoneCalls</key>
<string>YES</string>
通过url_launcher
插件,我们可以很方便地在Flutter中实现拨打电话的功能。同时,在使用该插件时需要注意在Android和iOS上的权限配置。