美好的一天。 我在网页上有一个简单的链接,用户可以在其中拨打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 。
有没有人经历过这个?或知道如何防止这种情况?
答案 0 :(得分:6)
Use URL encoding for special character in a UR L。例如,#
等于%23
这对我有用:
<a ng-href="tel:%23 224">#224</a>
如你所见:
答案 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>