Android HTML 电话链接 err_unknown_url_scheme

标签 android

我在带有 5.5.1/Lollipop 的库存 Nexus 5 上实现一个看似极其简单的解决方案,但遇到了困难。我希望直接在手机上存储本地 HTML 页面以保存大量引用电话号码列表:

<a href="tel:123-456-7890">Call Harold's Chicken Shack</a>
<a href="tel:234-567-8901">Call In n' Out Burger</a>

这曾经没有任何问题,但今年早些时候的某个时候 Android 更新禁用了它。以前,单击该链接会打开手机上的拨号器并开始调用该号码。现在,另一个网页显示为“网页不可用”,正文中包含“无法加载位于 tel:123-456-7890 的网页,因为:net::ERR_UNKNOWN_URL_SCHEME”。

我已经在谷歌上进行了大量搜索,但仍不清楚解决方案。

这个问题在这里讨论:
Getting net::ERR_UNKNOWN_URL_SCHEME while calling telephone number from HTML page in Android
但对该问题的所有回答似乎都不正确或描述了未被引用的解决方案。

有些人建议对电话号码进行各种格式更改:

<a href="tel:123-456-7890">Call Harold's Chicken Shack</a>
<a href="tel:1234567890">Call Harold's Chicken Shack</a>
<a href="tel:+123-456-7890">Call Harold's Chicken Shack</a>
<a href="tel:+1234567890">Call Harold's Chicken Shack</a>

但是,问题似乎不受连字符或 + 符号的影响。

接下来,有人建议为链接设置一个目标:

<a href="tel:123-456-7890">Call Harold's Chicken Shack</a>
<a href="tel:123-456-7890" target="_blank">Call Harold's Chicken Shack</a>

这对我的测试也没有影响。看起来有些人认为如果正在使用的 HTML 页面位于框架中,这会起作用。需要说明的是,我使用的 HTML 页面是单个页面,不在框架集中,而是存储在手机本地。

一些评论似乎在讨论不同的浏览器。我的目标是库存 Android 5.5.1/Lollipop WebView/HTML Viewer。我实际上可以确认原始代码:

<a href="tel:123-456-7890">Call Harold's Chicken Shack</a>

如果在许多第三方浏览器中打开,将正常工作。但是,我正在寻找一种库存解决方案。

许多评论似乎表明需要设置特殊权限,但没有关于文件所在位置的指示,我根本找不到它们,更不用说修改它们了。这让我想知道他们与权限相关的建议是否甚至是普通/无根 Android 设备上的一个选项。

因此,总而言之,如果您想在 Android 手机上本地存储 HTML 页面(不是脚本,不是应用程序,甚至不是运行 JavaScript 或其他东西的 HTML 页面,只有一个简单的本地 HTML 页面一个“a href=”链接,点击后会将电话号码放入拨号器中...)如何做到这一点?

感谢您的协助。

最佳答案

import android.content.Intent;
import android.net.Uri;

...

mWebView = (WebView) findViewById(R.id.web_view); 

WebSettings webSettings = mWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 

mWebView.setWebViewClient(new WebViewClient(){
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if( url.startsWith("http:") || url.startsWith("https:") ) {
            return false; 
        } 

        // Otherwise allow the OS to handle things like tel, mailto, etc. 
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity( intent );
        return true; 
    } 
}); 
mWebView.loadUrl(url); 

关于Android HTML 电话链接 err_unknown_url_scheme,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773731/

相关文章:

android - 如何使座位布局像redbus?

android - 服务器数据库更新时更新sqlite数据库

android - 如何检测 Android 中的假 GPS 坐标?

android - ICS 中荒谬的 SQLite 错误

Android Wear 表盘和 WakeLock

android - 只读文件系统android(是/mnt不是/system)

android - cordova项目中android构建的人行横道错误

android - 如何设置语音识别延迟?

android - socket.io 不适用于 Chrome 移动设备,但可以在隐身模式下使用

java.lang.NoClassDefFoundError : java. nio.charset.StandardCharsets