Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 我怎样才能从Flatter拨电话?_Flutter - Fatal编程技术网

Flutter 我怎样才能从Flatter拨电话?

Flutter 我怎样才能从Flatter拨电话?,flutter,Flutter,我正在开发一个Flutter应用程序,我想拨一个电话号码来回应按键的敲击。最好的方法是什么 谢谢 通常,要与底层平台进行交互,您必须编写特定于平台的代码,并使用该代码与底层平台进行通信。然而,颤振提供了一些与开箱即用平台的集成点。例如,要拨打电话,您可以使用API和tel方案拨打电话 类似于urlauncher.launch(“tel://”)的东西应该可以在所有平台上正常工作 请注意,这在模拟器中不起作用。因此,请确保您使用的是实际设备来测试此功能。此方法将打开拨号程序: \u launchC

我正在开发一个Flutter应用程序,我想拨一个电话号码来回应按键的敲击。最好的方法是什么


谢谢

通常,要与底层平台进行交互,您必须编写特定于平台的代码,并使用该代码与底层平台进行通信。然而,颤振提供了一些与开箱即用平台的集成点。例如,要拨打电话,您可以使用API和
tel
方案拨打电话

类似于
urlauncher.launch(“tel://”)的东西应该可以在所有平台上正常工作


请注意,这在模拟器中不起作用。因此,请确保您使用的是实际设备来测试此功能。

此方法将打开拨号程序:

\u launchCaller()异步{
const url=“电话:1234567”;
如果(等待canLaunch(url)){
等待发射(url);
}否则{
抛出“无法启动$url”;
}   
}
编辑:

如果任何人遇到错误:

在pubspec.yaml中添加
url\u启动器:
,运行
flatterget


另外,
import'package:url_launcher/url_launcher.dart'

您可以使用url\u启动器小部件()

  • 将此添加到包的pubspec.yaml文件:
    依赖项:url\u启动器:^5.7.10

  • 安装它:
    $flatter pub get

  • 导入它
    Import'package:url_launcher/url_launcher.dart'

  • 在类内部,定义此方法,以便可以从代码中的任何操作调用:

     Future<void> _makePhoneCall(String url) async {
     if (await canLaunch(url)) {
       await launch(url);
     } else {
       throw 'Could not launch $url';
     }
    
  • 注1:您应使用前缀“tel”填写电话号码:“tel:0123456789”

    注2:有时,只有关闭手机中的应用程序并重新打开它,它才能正常工作,因此颤振才能成功注入新部件的代码。


    是否也可以进行更多的低级电话活动?我正在考虑创建一个完全替换的拨号器应用程序,我想知道它是否可以在颤振中完成。链接到
    UrlLauncher
    不再工作,该功能似乎已被移动到一个新的包中:“请注意,这在模拟器中不起作用。”-非常感谢!这应该是正确且被接受的答案。这很好用。在以下位置找到相同的参考:检查最新答案:
     IconButton(icon: new Icon(Icons.phone),
        onPressed: () 
        {
           setState(() {
              _makePhoneCall('tel:0597924917');
           });
        },
      ),
    
    import 'package:flutter/material.dart';
    import 'package:flutter_phone_direct_caller/flutter_phone_direct_caller.dart';
    
    void main() {
      runApp(Scaffold(
        body: Center(
          child: RaisedButton(
            onPressed: _callNumber,
            child: Text('Call Number'),
          ),
        ),
      ));
    }
    
    _callNumber() async{
      const number = '08592119XXXX'; //set the number here
      bool res = await FlutterPhoneDirectCaller.callNumber(number);
    }