首页 > 解决方案 > 拨号器未显示完整的 ussd 代码,例如:*123*1#

问题描述

我正在使用url_launcher插件进行通话,但拨号器未显示#字符:

String url = 'tel:*123#';
if (await canLaunch(url)) {
    await launch(url);
} else {
    throw 'Could not launch $url';
}

标签: dartflutterussd

解决方案


您需要对 URL 中的特殊字符使用URL 编码

所以#等于%23

这将起作用launch('tel:\*123\%23');

其他方式是对用户输入的数字进行编码并通过Uri.encodeFull(urlString) 或Uri.encodeComponent(urlString)

像这样。

launch("tel:" + Uri.encodeComponent('*123#'));

推荐阅读