我可以在 Android 上通过 HTML 拨打电话吗?

Posted

技术标签:

【中文标题】我可以在 Android 上通过 HTML 拨打电话吗?【英文标题】:Can I make a phone call from HTML on Android? 【发布时间】:2010-05-05 14:45:10 【问题描述】:

为了在 iPhone 上通过 html 拨打电话,我创建了一个 <A/> 标签,其 href 格式为:<a href='tel:123-555-1212'>Dial Me</a>

android 上是否有 HTML 的等价物?

澄清 - 使用格式 href='tele:123-555-1212' 确实适用于 android。我正在设备上的本机 Java 包装器中测试该应用程序。我们似乎无法从托管在 Native Wrapper 中的 Web 应用程序进行调用。

【问题讨论】:

【参考方案1】:

是的,你可以;它也适用于Android:

电话:电话号码 调用输入的 电话号码。有效的电话号码 在 IETF RFC 3966 中定义的是 公认。有效的例子包括 以下:

* tel:2125551212
* tel: (212) 555 1212

Android 浏览器使用电话应用来处理 RFC 3966 定义的“tel”方案。 点击如下链接:

<a href="tel:2125551212">2125551212</a>

在 Android 上将调出电话应用程序并预​​先输入 2125551212 的数字,而无需自动拨号。

看看RFC3966

【讨论】:

当您单击链接时,iphone 会自动发起呼叫(自动拨号)?还是像安卓? (打开拨号器,需要按通话键)。 确保你有这个: 在你的 Manifest.xml【参考方案2】:

我刚刚编写了一个可以从网页拨打电话的应用程序-我不知道这对您是否有用,但无论如何我包括:

在您的 onCreate 中,您需要使用 webview 并分配 WebViewClient,如下所示:

browser = (WebView) findViewById(R.id.webkit);
browser.setWebViewClient(new InternalWebViewClient());

然后像这样处理对电话号码的点击:

private class InternalWebViewClient extends WebViewClient 

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
         if (url.indexOf("tel:") > -1) 
            startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
            return true;
         else 
            return false;
        
    

如果您需要更多指点,请告诉我。

【讨论】:

谢谢 - 是的,这是一个好方法!我最终通过带有 addjavascriptInterface 的 JavaScript 添加了对我的应用程序的访问权限【参考方案3】:

一般在 Android 上,如果你只是简单地显示电话号码,然后用户点击它,它就会在拨号器中将其拉起。所以,你可以简单地做

For more information, call us at <b>416-555-1234</b>

当用户点击粗体部分时,由于它的格式类似于电话号码,拨号器会弹出,并在电话号码字段中显示4165551234。然后用户只需点击通话按钮即可。

你也许可以做到

For more information, call us at <a href='tel:416-555-1234'>416-555-1234</a>

涵盖这两种设备,但我不确定这将如何运作。我会尽快试一试并通知您。

编辑: 我刚刚在我的 HTC Magic 上尝试了这个,它使用 SenseUI 运行了一个根深蒂固的 Rogers 1.5:

For more information, call us at <a href='tel:416-555-1234'>416-555-1234</a><br />
<br />
Call at <a href='tel:416-555-1234'>our number</a>
<br />
<br />
<a href='416-555-1234'>Blah</a>
<br />
<br />
For more info, call <b>416-555-1234</b>

第一个,用链接包围并打印电话号码,效果很好。用连字符和所有字符拉起拨号器。第二个,用链接说our number,工作方式完全相同。这意味着使用 &lt;a href='tel:xxx-xxx-xxxx'&gt; 应该可以全面使用,但我不建议将我的一次测试作为结论。

直接链接到该号码的预期效果:试图从服务器上提取不存在的文件。

最后一个和我上面提到的一样,拉起拨号器,但没有漂亮的格式连字符。

【讨论】:

以上是关于我可以在 Android 上通过 HTML 拨打电话吗?的主要内容,如果未能解决你的问题,请参考以下文章

(学习笔记)android 5.0 系统去电流程状态判断(上)

无论如何要为Android中的来电和去电制作我的自定义用户界面吗?

使用 telnet 从一个 Android 模拟器拨打电话到另一个?

如何通过android上的ADB命令通过pc拨打电话?

在android中单击按钮拨打电话

(学习笔记)android 5.0 系统去电流程状态判断(下)