我有一个文本字段,用户可以在其中输入一个数字和一个Raisedbutton。单击该按钮,用户应该可以拨打该号码。如何为该按钮编写onPressed()函数?
在上面的代码中,我有主类,其中的Home()类被调用
import 'package:flutter/material.dart';
class Home extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return HomeState();
}
}
class HomeState extends State<Home> {
TextEditingController numcontroller = new TextEditingController();
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
centerTitle: true,
backgroundColor: Colors.deepPurple,
title: Text('Calling App'),
),
body: Column(
children: <Widget>[
Container(
margin: EdgeInsets.only(top: 60.0, left: 10.0, right: 10.0),
child: TextField(
controller: numcontroller,
decoration: InputDecoration(
labelText: 'Enter Phone Number',
border: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.deepPurple,
)
)
)
),
),
Container(
height: 45.0,
width: 90.0,
margin: EdgeInsets.only(top: 40, left: 10, right: 10.0),
child: RaisedButton(
color: Colors.deepPurple,
elevation: 7.0,
child: Text(
'Call',
style: TextStyle(
color: Colors.white,
fontSize: 20.0,
),
),
onPressed: () {
_calling();
}
),
)
],
),
),
);
}
void _calling(){
}
}
假设我输入了一个号码94 ********。然后按该按钮,呼叫应该连接到该号码。如果忙或关机,则应该显示任何警报消息。
答案 0 :(得分:0)
如果您实际上想通过应用程序拨打电话,则需要标记为敏感许可的grep -w 'RPT_ALINKS' stats2.log | awk -F 'TK' '{print FS }'
许可,您的应用将与Google Play政策不兼容。
您可以改为打开电话应用,
首先安装url_launcher
在CALL_PHONE
pubspec.yaml
然后
dependencies:
url_launcher: ^5.0.3
答案 1 :(得分:0)
首先导入URL启动器依赖项
url_launcher: ^5.2.5
然后您的调用函数应如下所示
_calling() async {
const url = 'tel:+12345678';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}