簡體   English   中英

使用html5 android webview發送電子郵件

[英]sending an email using html5 android webview

我正在嘗試創建應用程序,該應用程序將能夠從WebView android發送來自該應用程序的電子郵件。 代碼示例將像

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

代碼可以在瀏覽器中正常工作,但是在android本身的WebView中,它表明不支持該操作。所以我想知道是否可以僅在WebView中使用HTML發送電子郵件?

這樣的事情將在您的Webview客戶端中完成工作。

它能做什么 :

  1. 首先,解析鏈接,以檢測它是否是mailto鏈接。
  2. 解析以獲取mailto鏈接的參數
  3. 有意發送電子郵件,帶有mailto鏈接的給定參數

見下文 :

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;
    }
}

您需要覆蓋(在您的webview類中)shouldOverrideUrlLoading( http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading (android.webkit.WebView,%20java.lang.String )解析mailto鏈接並將意向發送到郵件應用程序。

如果您使用的是cordova / phonegap,則需要導入inAppBrowser插件,並將target =“ _ system”添加到您的鏈接中,這樣它們才能被定向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM