android - 如何通过点击号码从 webviewclient 打开拨号器 Activity ?

标签 android android-webview android-dialer

我正在我的应用程序中实现 WebView 。现在,当用户点击电话号码时,它会显示 net::ERR_UNKNOWN_URL_SCHEME。但如果我使用 Chrome 。它会为拨号器应用程序带来该电话号码。

我的应用程序中需要完全相同的东西。当在 Web View 中单击电话号码时,需要使用该电话号码打开拨号器。

这是我的 webview 的 shouldOverrideUrlLoading 方法。我可以看到有答案here.但我对 android 和 java 还很陌生,直到现在我还无法让这个东西工作。

 public boolean shouldOverrideUrlLoading(WebView view, String url){
        progressBar.setVisibility(view.VISIBLE);
        view.loadUrl(url);
        return true;
   }

最佳答案

这一定有效。我们需要重写 webview 类的 shouldOverrideUrlLoading 方法。并检查 url 是否包含 tel:xxxx 然后为拨号器创建一个 Intent 并调用拨号器。我们可以调用任何我们想要的应用程序,例如 gmail 应用程序(如果它是 mailto: 链接

)

这是方法。

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
   if(url.contains("tel:")) {
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse(url));
        startActivity(intent);
        return true;
   } else {
        progressBar.setVisibility(view.VISIBLE);
        view.loadUrl(url);
        return true;
   }
}

关于android - 如何通过点击号码从 webviewclient 打开拨号器 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933852/

相关文章:

java - 接下来的编辑文本字段遵循其自身

android - 在 webview 中使用 ShowfindDialog 搜索不突出显示

javascript - 在android webview中打开javascript

android - "Phone"app如何显示不在通讯录中的联系人信息?

android - TelecomManager.ACTION_CHANGE_DEFAULT_DIALER 在华为 P8 Lite 上返回 RESULT_CANCELED

java - 将html代码转换为纯文本

安卓工作室 "Attempt to invoke virtual method on a null object reference"

java - Sceneform:将 WebRTC 媒体流渲染到 ExternalTexture

Android WebView 内容在继续放大/缩小时中断(呈现问题)

java - 安卓。从拨号器启动应用程序