mailto: ссылки не поддерживаются в Android? - PullRequest
8 голосов
/ 08 сентября 2010

У меня нет настоящего Android-устройства, поэтому я использую эмуляторы для всех своих разработок, действительно ли mailto: веб-ссылки не поддерживаются на устройствах Android 2.1 и ниже?2.2 работает, но каждый раз, когда я нажимаю ссылку mailto: в 1.6 или 2.1, я получаю диалоговое окно [неподдерживаемое действие].Кто-нибудь с реальным устройством хочет проверить это?

Ответы [ 2 ]

32 голосов
/ 09 сентября 2010

Вы должны справиться с этим самостоятельно в WebViewClient

public class MyWebViewClient extends WebViewClient {
    Activity mContext;
    public MyWebViewClient(Activity context){
        this.mContext = context;
    }
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {     
        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;
        }
        view.loadUrl(url);
        return true;
    }
}

В своей деятельности вы сохраняете ссылку на MyWebViewClient и присваиваете ее своему webview с помощью setWebViewClient(mWebClient).

2 голосов
/ 18 сентября 2012

Более простой способ будет:

if(url.startsWith("mailto:")){
    Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
    view.getContext().startActivity(intent);
}
...