Flutter:url_launcher 异常

Zeu*_*sox 5 flutter

我正在使用 url_launcher 依赖项在我的图标之一上具有拨号功能;但是,这在 Android 上有效,但在 IOS 上无效?

\n\n

调用启动器方法是:

\n\n
   _launchcaller()  async\n  {\n    const url = '719-282-2224';\n\n    if (await canLaunch(url))\n    {\n      await launch(url);\n    }\n\n    else{\n      throw 'Could not launch $url';\n    }\n\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我在 onTap 侦听器上调用该方法,如下所示:

\n\n
new GestureDetector(\n\n             onTap: _launchcaller,\n\n      child: new Icon(Icons.phone, color: Colors.blue, size: 50.0,),\n\n    ),\n
Run Code Online (Sandbox Code Playgroud)\n\n

异常输出:

\n\n
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:\nCould not launch tel:719-282-2224\n#0      angryScreenState._launchcaller (file:///Users/ielbouyahyaouy/AndroidStudioProjects/app_firebase/flutter_app_books/lib/angryScreen.dart:103:7)\n<asynchronous suspension>\n#1      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)\n#2      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:161:9)\n#3      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:94:7)\n#4      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)\n#5      PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)\n#6      PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)\n#7      _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:143:19)\n#8      _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (packag<\xe2\x80\xa6>\n
Run Code Online (Sandbox Code Playgroud)\n

Rob*_*oli 1

对于要将 url 理解为电话号码的 iOS 设备,您需要去掉破折号。你可以这样做。它还应该以 tel:// 为前缀

url = 'tel://719-282-2224';
url = url.replaceAll(new RegExp(r'-'), ''); // remove dashes
Run Code Online (Sandbox Code Playgroud)