【问题标题】:Calling phone number from HTML5 android从 HTML5 android 拨打电话号码
【发布时间】:2016-03-26 05:56:07
【问题描述】:

我用 HTML5 和 Javascript 构建了一个 Android 应用程序。我想让用户拨打号码,但它不起作用: a href="tel:+201224001111">+201224001111/a>

我还在 android manifest xml 中添加了这一行: 使用权限 android:name="android.permission.CALL_PHONE" /

【问题讨论】:

    标签: javascript android html android-webview


    【解决方案1】:

    比较你的

    <a href="tel:+15555555555">Call me at +1 (555) 555-5555 </a>
    

    https://mobiforge.com/design-development/mobile-friendliness-101-adding-click-to-call-links-to-a-website

    这应该用作点击通话。

    【讨论】:

    • 我要使用 HTML 链接
    • 在我创建 APK 文件并将其安装在我的手机上之后,或者不。我不拨号码
    • 电话浏览器不会直接拨打电话。他们会将电话号码交给应用,但不会拨打电话。
    • 我和你在这里写的一样。如果应用程序不拨号码会发生什么?
    • @DainaHodges 在我用过的任何手机浏览器中,我只能点击tel: 链接并显示电话拨号应用程序,准备拨打号码.我必须点击某些东西才能完成拨号过程。
    【解决方案2】:

    Daina,据我了解,您正在将 html5 加载到 webview 中,对吗?在这种情况下,您需要设置 WebViewClient 并覆盖 shouldOverrideUrlLoading 方法,例如:

     public static final String TEL_TYPE = "tel:";
    
    webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if (url.contains(AppConstants.TEL_TYPE)) {
                    try {
                        activity.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
                        return true;
                    } catch (ActivityNotFoundException e) {
                        //you can show toast here
                        return true;
                    }
                } 
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
    

    【讨论】:

    • 我创建了html文件并将它们上传到monaca io网站进行编译。我不知道android代码。
    • 如果你想在原生 Android 应用中正确处理你的 html5 应用,你也需要更新它。正如您提到的,您修改了 Android 清单文件,您拥有它(本机应用程序)。现在您需要找到加载 html5 的位置并正确更新 webview。
    • 我将这些行添加到 config.xml 中,效果很好
    【解决方案3】:

    更好的 HTML 方法是:

    <a href="tel://+15555555555">call test </a> 
    

    并且还要注意在这个方法中不需要权限。 如果您喜欢在 android 中使用内部函数进行调用,您可以通过以下方式运行调用意图:

    String phnumber =  "+155555555";
    Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse("tel:" + phnumber));
    startActivity(callIntent);
    

    需要通话权限。 下面这个方法也不需要权限:

    String phnumber =  "+155555555";
    Intent callIntent = new Intent(Intent.ACTION_DIAL);
    callIntent.setData(Uri.parse("tel:" + phnumber));
    startActivity(callIntent);
    

    这将显示用户拨号盘和呼叫按钮。 希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 2021-01-18
      • 2018-03-09
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多