dart - 拨号器未显示完整的 ussd 代码,例如:*123*1#
问题描述
我正在使用url_launcher
插件进行通话,但拨号器未显示#
字符:
String url = 'tel:*123#';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
解决方案
您需要对 URL 中的特殊字符使用URL 编码。
所以#
等于%23
这将起作用launch('tel:\*123\%23');
其他方式是对用户输入的数字进行编码并通过Uri.encodeFull(urlString
) 或Uri.encodeComponent(urlString)
像这样。
launch("tel:" + Uri.encodeComponent('*123#'));
推荐阅读
- vuejs2 - 仅向元素添加文本字符串
- python - 如何处理机器学习中的异步输入
- reactjs - 如何在 Create React App 中更改 publicPath
- prestashop-1.7 - 如何在 Prestashop 1.7.6.1 中的订单确认电子邮件中从产品表中删除参考列(=第 1 列)
- reactjs - 反应路由器功能组件重定向事件
- android - android 谷歌地图 mapview 按钮错误
- r - 如何在 dplyr 中汇总变量
- python - 使用 python 将“多模式”对数正态分布拟合到数据中
- html - 我可以执行一个在控制器中执行功能的链接并通过 AJAX 从该控制器获取数据吗?
- ios - iOS 应用缺少 App ID 前缀。应用程序未启用 UniversalLinks。在哪里输入 App ID?