使用 Url_launcher 添加#登录 tel uri

问题描述 投票:0回答:3

在 flutter 应用程序中,我使用 Url_launcher 依赖项来打开电话应用程序,并使用以下函数拨打内容 Url_launcher.launch("电话:\*5*250#" ). 它确实打开了应用程序,但没有拨入 # 符号,其他一切正常...任何包含 # ???

的解决方法
flutter flutter-dependencies flutter-plugin
3个回答
5
投票

我仅在 Android 设备上发现此问题。它适用于 iOS。

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

所以

#
等于 %
23

这会起作用

launch('tel:\*5*250\%23');

这个答案帮助了我。


5
投票

最简单、最安全的方法是对用户输入的手机号码进行编码并通过

Uri.encodeComponent(numberTypedByUser)

像这样。

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

0
投票

你也应该使用 Uri.encodeComponent 来编码 #

onPressed: () {
    String no = Uri.encodeComponent('*123#');
    launch('tel:$no');
  },
© www.soinside.com 2019 - 2024. All rights reserved.