Webview E-Mail-Link (Mailto)
Ich habe eine view und view, die Seite hat malito-code E-Mails versenden.
Wenn ich öffnen Sie die link öffnet in einem Fehler.
Ich möchte, dass wenn ich den link zu öffnen, öffnet Gmail-app oder einem anderen E-Mail-Anwendung.
Vielen Dank an alle Helfer.
public class teacher extends Activity implements OnClickListener {
WebView webView;
final Activity activity = this;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.teacher);
webView = (WebView) findViewById(R.id.webView145);
webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("https://dl.dropboxusercontent.com/u/233211/%D7%A8%D7%A9%D7%99%D7%95%D7%9F/iWebKit%20demo/ther.html");
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if (progress == 100)
activity.setTitle(R.string.app_name);
} });
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
//Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true; } });}
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
Intent B = new Intent(this, MainActivity.class);
startActivity(B);
}}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (webView.canGoBack() == true) {
webView.goBack();
} else {
finish();
}return true;} }
return super.onKeyDown(keyCode, event);
}
@Override
public void onClick(View arg0) {
//TODO Auto-generated method stub
}}
Kommentar zu dem Problem
Bitte beschreiben Sie "einen Fehler".
InformationsquelleAutor der Frage omer341 | 2013-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie erstellen eine Unterklasse der WebViewClient und überschreiben mailto-URL laden. Beispiel:
Dann müssen Sie diese benutzerdefinierte WebViewClient um Ihre WabView:
InformationsquelleAutor der Antwort Tomas Žemaitis
Sollten Sie ändern shouldOverrideUrlLoading des WebViewClient um die folgenden:
InformationsquelleAutor der Antwort Andrey T
Hinweis : - Nach dem Android-Nougat
shouldOverrideUrlLoading
ist VeraltetMüssen Sie
shouldOverrideUrlLoading
zusammen mitshouldOverrideUrlLoading
für eine bessere Unterstützung.Auch, möchten Sie vielleicht zu prüfen, ob die URL haben
mailto:
odertel:
, die in HTML5, um die trigger-E-mail-client und Telefon jeweils.Eine vollständige Lösung wird nun wie folgt Aussehen
InformationsquelleAutor der Antwort Hitesh Sahu