如何处理mailto [HTML]在Android的WebView中

问题描述:

我有一个HTML页面A HREF链接,我链接到的电子邮件地址是这样的:如何处理mailto [HTML]在Android的WebView中

<p>sometext <a href="mailto:[email protected]">[email protected]</a></p> 

这是我的Android MainActivity:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

import com.google.android.gms.common.api.GoogleApiClient; 

public class MainActivity extends Activity { 

/** 
* ATTENTION: This was auto-generated to implement the App Indexing API. 
* See https://g.co/AppIndexing/AndroidStudio for more information. 
*/ 
private GoogleApiClient client; 
private WebView view; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    view = (WebView) this.findViewById(R.id.webView); 
    view.getSettings().setJavaScriptEnabled(true); 
    view.getSettings().setDomStorageEnabled(true); 
    view.setWebViewClient(new MyBrowser()); 
    view.loadUrl("file:///android_asset/www/index.html"); //try js alert 
    view.setWebChromeClient(new WebChromeClient()); // adding js alert 


} 

/** 
* ATTENTION: This was auto-generated to implement the App Indexing API. 
* See https://g.co/AppIndexing/AndroidStudio for more information. 
*/ 

private class MyBrowser extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
} 

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) { 
     view.goBack(); //method goback() 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
    } 
} 

我知道我需要做一些主要的活动,但我不知道是什么?那么somone能帮助我吗?

在此先感谢!

+0

你想做的事可以请您简要解释一下。什么是要求它不清楚你想要做什么 –

+0

如果我现在按下按钮它会说网页找不到。我会如果你按下按钮,它会像一个电子邮件应用程序:像Gmail我的电子邮件地址填写 – Steven

+0

试试Pravin Suthar回答这是我将发布尝试它的相同答案。 –

内shouldOverrideUrlLoading()方法,用这个逻辑

if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url.startsWith("mailto:") || url.startsWith("mms:") || url.startsWith("mmsto:")) { 
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
       startActivity(intent); 
       return true; 
      } 
    else { 
     view.loadUrl(url); 
     } 
+0

谢谢它只有在别人的东西你的工作忘了返回真实。但是,谢谢它的作品! – Steven