2012-11-03 6 views
0

웹 브라우저와 비슷한 응용 프로그램을 개발 중입니다. 이메일 클라이언트의전자 메일 주소를 클릭하면 webview에서도 웹 페이지로로드됩니다.

  1. 세트를 나를 위해
  2. 웹보기가로드하려고 표시에서 선택 : 나는 웹보기를 통해 표시되는 웹 페이지에서 이메일 주소를 클릭 할 때 지금이 일어나는 것이다 url은 "mailto : [email protected]"이며 URL을 찾을 수 없을 때 오류 페이지를 표시합니다.

2 번에서 문제를 해결하는 방법을 찾으려고합니다.

기본적으로 'mailto :'가 포함 된 URL을로드 할 필요가 없습니다. 추가 된

에게 view.loadurl 전에

if(url.startsWith("mailto")) 
{ 
    /*Do the stuff for sending email but i will not display */ 
    url = null; 
} 
  • (URL),

    1. 'shouldOverrideUrlLoading()'아래 : 여기

      내가 할 시도했지만 실패 무엇
      if(!url.startsWith("mailto:")) 
          view.loadurl(url); 
      

    나는 이것들이 해킹이며 아주 우아하지 않다는 것을 압니다. 누군가 올바른 경로로 나를 가리킬 수 있습니까?

    감사합니다.

  • +1

    url을 null로 설정 한 후에'shouldOverrideUrlLoading()'에 반환 할 내용은 무엇입니까? – Marcelo

    +0

    Marcelo 안녕하세요. 반환 super.shoudOverrideUrlLoading (보기, url) – winhung

    답변

    0

    return true;shouldOverrideUrlLoading() 방법으로 시도하십시오. :)

    +0

    그렇습니다. return super.shouldOverrideUrlLoading (view, url) 대신 true를 반환하면 문제가 해결됩니다. 더 자세한 답변을 게시 할 예정입니다. – winhung

    0

    라비 밧의 대답이 맞습니다. 함수가 끝나면 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; 
    

    당신이 어딘가에 거짓 반환에 넣으면, 너무 작동하지 않습니다. url = null도 도움이되지 않습니다.

    희망 사항은 다른 사람들이 내 문제와 비슷한 문제를 겪는 데 도움이되기를 바랍니다.

    +0

    내 대답이 도움이된다면, 그 답을 올바르게 표시해야합니다. 내 편집으로 당신 것이 아닙니다. 여분의 단어를 정답으로 주석으로 쓸 수 있습니다. –

    관련 문제