我没有真正的Android设备所以我现在正在使用模拟器进行我的所有开发,在Android设备2.1及更低版本上,mailto:web链接真的不受支持吗? 2.2工作,但每次我点击1.6或2.1上的mailto:
链接时,我都会收到[不支持的操作]对话框。有真实设备的人想要测试一下吗?
答案 0 :(得分:32)
您必须自己在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)
。
答案 1 :(得分:2)
更简单的方法是:
if(url.startsWith("mailto:")){
Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
view.getContext().startActivity(intent);
}