哈希键“#”从html页面上“tel:”链接中的ussd代码中删除

时间:2014-09-17 12:42:09

标签: html html5 ussd

美好的一天。 我在网页上有一个简单的链接,用户可以在其中拨打USSD号码:

<a href="tel:*111*2#" class="phoneCallButtonLink">*CLICK HERE AND CALL *111*2#</a>

这很直接;现在,如果我在桌面浏览器上测试它,它会弹出一个警告,询问我是否要拨打(使用Skype)号码 * 111 * 2#,这没关系。

使用我的Android手机(S Note 3),在测试此页面时,手机(或某物)从最后一个&#34;#&#34; (仅限最后一个)中删除链接,导致拨打 * 111 * 2

有没有人经历过这个?或知道如何防止这种情况?

4 个答案:

答案 0 :(得分:6)

Use URL encoding for special character in a UR L。例如,#等于%23

这对我有用:

<a ng-href="tel:%23 224">#224</a>

如你所见:

enter image description here

答案 1 :(得分:3)

您需要使用Uri.encode("#") 例如String number = "tel:*111*2" + Uri.encode("#");

答案 2 :(得分:2)

请尝试这种方式,希望这有助于您解决问题。

 webview = (WebView) findViewById(R.id.webview);
 webview.loadData("<a href=\"tel:*111*2#\" class=\"phoneCallButtonLink\">*CLICK HERE AND CALL *111*2#</a>","text/html", "utf-16");
 webview.setWebViewClient(new CustomWebViewClient());

 private class CustomWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView wv, String url) {
    if(url.startsWith("tel:")) {
       Intent intent = new Intent(Intent.ACTION_DIAL);
       intent.setData(Uri.parse(url.replace("#","%23")));
       startActivity(intent);
       return true;
    }
    return false;
   }
 }

答案 3 :(得分:0)

您可以使用以下方式在拨号器中显示USSD

<a href="tel:*111*2%23" class="phoneCallButtonLink">*CLICK HERE AND CALL *111*2#</a>