我没有真正的 Android 设备,所以我现在使用模拟器进行所有开发,mailto: web 链接在 Android 设备 2.1 及以下版本上真的不支持吗?2.2 有效,但每次我点击mailto:
1.6 或 2.1 上的链接时,我都会得到一个 [不支持的操作] 对话框。有真机的人想测试一下吗?
问问题
12116 次
2 回答
35
您必须在 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
with setWebViewClient(mWebClient)
。
于 2010-09-08T20:46:04.893 回答
2
一个更简单的方法是:
if(url.startsWith("mailto:")){
Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
view.getContext().startActivity(intent);
}
于 2012-09-18T13:56:48.343 回答