Android Webview ERR_UNKNOWN_URL_SCHEME 错误

标签 android mailto

当我点击一个指向 mailto:admin@ikiyuzoniki.net 的链接时,我收到了这个错误:

net: ERR_UNKNOWN_URL_SCHEME

我尝试添加一个 if(url.startsWith("mailto:")) 条件,但它不起作用。

这是我的 MyWebViewClient 方法:

public class MyWebViewClient extends WebViewClient {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {

        }

        @Override
        public void onPageFinished(WebView view, String url) {
            view.setVisibility(View.VISIBLE);
            final Animation fade = new AlphaAnimation(0.0f, 1.0f);
            fade.setDuration(200);
            view.startAnimation(fade);
            view.setVisibility(View.VISIBLE);

        }

    }
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.startsWith("mailto:")){
            Intent intent = null;
            try {
                intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
            view.getContext().startActivity(intent);
        }
        else if (url.endsWith(".mp3")) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.parse(url), "audio/*");
            startActivity(intent);

        } else if (url.endsWith(".mp4") || url.endsWith(".3gp")) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.parse(url), "video/*");
            startActivity(intent);
        }
        else {
            return false;
        }
        view.reload();
        return true;
    }

这就是我在 loadUrl 之前将函数添加到我的 Web View 的方式:

...
mWebview.setWebViewClient(new MyWebViewClient());
...

最佳答案

试试这个

if(url.startsWith("mailto:")){
        MailTo mt = MailTo.parse(url);
        Intent i = new Intent(Intent.ACTION_SEND);
        i.setType("text/plain");
        i.putExtra(Intent.EXTRA_EMAIL, new String[]{mt.getTo()});
        i.putExtra(Intent.EXTRA_SUBJECT, mt.getSubject());
        i.putExtra(Intent.EXTRA_CC, mt.getCc());
        i.putExtra(Intent.EXTRA_TEXT, mt.getBody());
        mContext.startActivity(i);
        view.reload();
        return true;
    } 

关于Android Webview ERR_UNKNOWN_URL_SCHEME 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29853142/

相关文章:

android - 约束布局的未知行为

jquery - 在新选项卡/窗口中打开 href mailto 链接

c++ - 使用客户的电子邮件应用程序发送带附件的电子邮件

Android WebView “tel:” & "mailto:"链接显示未找到网页

android - 如何在android中以编程方式打开数字拨号盘?

android - 'fastScrollEnabled'如何在ScrollView中像ListView一样?

Android - 是否可以禁用单击主页按钮

java - 改造安卓: Method invocation 'getSuccess' may produce 'java.lang.NullPointerException'

javascript - 在 mailto 表单中包含选择选项

html - 浏览器 mailto 问题?