单击电子邮件地址也会将其加载为网页以及webview

时间:2012-11-03 11:25:58

标签: android android-webview

我正在开发一个类似于网络浏览器的应用。 现在,当我点击通过WebView显示的网页中的电子邮件地址时,会发生以下情况:

  1. 显示一组供我选择的电子邮件客户端
  2. webview尝试加载网址“mailto:abc@xyz.com”,并在找不到网址时显示错误页面。
  3. 我想弄清楚如何解决2号问题。

    基本上,我不需要应用加载包含'mailto:'的网址。

    这是我试图做但失败的事情:

    1. 在'shouldOverrideUrlLoading()',

      if( url.startsWith("mailto") )
      {
          /*Do the stuff for sending email but i will not display */
           url = null;
      }
      
    2. 在view.loadurl(url)之前, 添加了

      if( !url.startsWith("mailto:") )
           view.loadurl(url);
      
    3. 我知道这些都是黑客,并不是很优雅。 因此,有人能指出我正确的道路吗?

      谢谢。

2 个答案:

答案 0 :(得分:0)

尝试在return true;方法中使用shouldOverrideUrlLoading()。 :)

答案 1 :(得分:0)

Ravi Bhatt的回答是正确的。在函数结束时,它应该返回true;

但您必须手动捕获包含http或https的任何网址并加载网址。这就是我的意思:

在shouldOverrideUrlLoading()下,

else if( url.startsWith("http:") || url.startsWith("https:") )
{
    view.loadUrl(url); //u can use the default webview or your own webview            
}

/*At the end of the function*/                
return true;

如果你在某个地方输入了false,那么它也无法正常工作。 url = null也无济于事。

希望这可以帮助那些与我有相似问题的人。