0

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

  1. 显示一组电子邮件客户端供我选择
  2. webview 尝试加载 url,“mailto:abc@xyz.com”,并在找不到 url 时显示错误页面。

我试图弄清楚如何解决 No.2 中的问题。

基本上,我不需要应用程序加载包含“mailto:”的 url。

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

  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);
    

我知道这些是黑客,不是很优雅。因此,有人可以指出我正确的道路吗?

谢谢你。

4

2 回答 2

0

尝试使用return true;inshouldOverrideUrlLoading()方法。:)

于 2012-11-03T15:04:39.733 回答
0

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

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

在 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;

如果您在某处输入 return false ,它也将不起作用。url = null 也无济于事。

希望这可以帮助其他与我有类似问题的人。

于 2012-11-05T01:13:26.773 回答