我正在使用 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 }\nRun Code Online (Sandbox Code Playgroud)\n\n然后我在 onTap 侦听器上调用该方法,如下所示:
\n\nnew GestureDetector(\n\n onTap: _launchcaller,\n\n child: new Icon(Icons.phone, color: Colors.blue, size: 50.0,),\n\n ),\nRun 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>\nRun Code Online (Sandbox Code Playgroud)\n
对于要将 url 理解为电话号码的 iOS 设备,您需要去掉破折号。你可以这样做。它还应该以 tel:// 为前缀
url = 'tel://719-282-2224';
url = url.replaceAll(new RegExp(r'-'), ''); // remove dashes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |