如何使用离子框架拨打USSD

时间:2016-12-13 13:38:14

标签: ios ionic-framework ionic2

我正在制作带离子框架的混合应用程序,并希望拨打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

1 个答案:

答案 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将无效,因为它将被视为字符串。