使用html5 android webview发送电子邮件

时间:2013-12-07 16:42:18

标签: android html html5 email webview

我正在尝试创建应用程序,应用程序将能够从WebView android从应用程序发送电子邮件。代码的例子就像

<a href="mailto:email@echoecho.com?subject=SweetWords">Send Email</a> 

代码在浏览器中工作正常,但在android本身的WebView中,它显示不支持该操作。所以我想,是否可以仅在WebView中使用HTML发送电子邮件?

2 个答案:

答案 0 :(得分:2)

这样的事情将在你的webview客户端中完成。

它的作用:

  1. 首先,解析链接,以检测它是否是mailto链接。
  2. 解析以获取mailto链接的参数
  3. 使用mailto链接的给定参数发送意图中的电子邮件
  4. 见下文:

    public boolean shouldOverrideUrlLoading (WebView view, String url){
        String mailToRegexp = "mailto\\:([^?]+)\\?{0,1}((subject\\=([^&]+))|(body\\=([^&]+))|(bcc\\=([^&]+))|(cc\\=([^&]+)))*";
        Pattern mailToPattern = Pattern.compile(mailToRegexp);
        Matcher mailToMatcher = mailToPattern.matcher(url);
        if(mailToMatcher.find()){
            String email = mailToMatcher.group(1);
            String subject = mailToMatcher.group(4);
            String body = mailToMatcher.group(6);
            String bcc = mailToMatcher.group(8);
            String cc = mailToMatcher.group(10);
    
            Intent intent = new Intent(Intent.ACTION_SEND);
    
            intent.setType("message/rfc822");
            intent.putExtra(Intent.EXTRA_EMAIL, email);
            intent.putExtra(Intent.EXTRA_SUBJECT, subject);
            intent.putExtra(Intent.EXTRA_TEXT, body);
            intent.putExtra(Intent.EXTRA_BCC, bcc);
            intent.putExtra(Intent.EXTRA_CC, cc);
    
            startActivity(Intent.createChooser(intent, "Send Email"));
    
            return true;
        }
    }
    

答案 1 :(得分:0)

您需要覆盖(在您的webview类中)shouldOverrideUrlLoading(http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,%20java.lang.String))来解析mailto链接并将意图发送到邮件应用程序。

如果您使用的是cordova / phonegap,则需要导入inAppBrowser插件并将target =“_ system”添加到您的链接中,以便它们作为意图进行定向