我正在尝试创建应用程序,应用程序将能够从WebView android从应用程序发送电子邮件。代码的例子就像
<a href="mailto:email@echoecho.com?subject=SweetWords">Send Email</a>
代码在浏览器中工作正常,但在android本身的WebView中,它显示不支持该操作。所以我想,是否可以仅在WebView中使用HTML发送电子邮件?
答案 0 :(得分:2)
这样的事情将在你的webview客户端中完成。
它的作用:
见下文:
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”添加到您的链接中,以便它们作为意图进行定向