我正在制作带离子框架的混合应用程序,并希望拨打USSD。拨打普通号码(12345678)没问题;但是我无法拨打USSD(* 556#);甚至在编码'#'字符之后。有人可以帮帮我吗?
<a ion-button href="tel:556" >call</a> // This dials the number - no problem here
<a ion-button href="tel:*556#" >Call</a> // This does nothing <a ion-button href="tel:encodeURIComponent(*556#)" >Call</a> // This doesn't work either
它拨打USSD,但我认为它不会完全拨打*556#
"Error Performing Request, Unknown Error"
显示在我的屏幕上。当我记录encodeURIComponent(*556#)
时,我会看到*556%23
答案 0 :(得分:1)
首先,让我告诉你,有些模拟器在某些设备上运行起来很有趣。我有客户面临一些问题,代码工作正常,但模拟器有问题。
我使用过并且没有任何问题的模拟器是genymotion for android。
来到您的代码,让我们说我们需要拨打号码123#456
这是您在HTML中需要的内容
<a href="tel:+123%23456" class="button button-positive">Call me 1</a>
<button (click)="callIT('1-23#456')">call function</button>
请注意,我在显示两种方法,一种是href
,另一种是click
正如您所看到的那样,我们已将#
替换为%23
属性中的href
。
在第二种方式中,我们使用一个名为callIT
的函数并将其传递给它。
所以在你的Javascript代码中功能如下
callIT(passedNumber){
passedNumber = encodeURIComponent(passedNumber);
window.location = "tel:"+passedNumber;
}
如图所示,我们正在使用encodeURIComponent
正如您在代码中提到的,使用href属性中的encodeURIComponent
将无效,因为它将被视为字符串。