2016-11-22 2 views
0

웹 사이트의 Android Webview에서 작업하고 있습니다. 나는 연락처에 mailto을 포함시키고 친구에게 이메일을 보냈습니다. 웹 측의 코드 : 연락처에 대한Android WebView에서 MailTo가 작동하지 않습니다.

: <a href="mailto:[email protected]">[email protected]</a>을 친구에게 이메일

:

@Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if(url.startsWith("http:") || url.startsWith("https:")) { 
      return false; 
     } 

     else if (url.startsWith("tel:")) { 
      Intent tel = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); 
      startActivity(tel); 
      return true; 
     } 
     else if(url.startsWith("mailto:")) { 
      MailTo mailTo = MailTo.parse(url); 
      String emailAddress = mailTo.getTo(); 
      String subject = mailTo.getSubject(); 
      String body = mailTo.getBody(); 
      String cc = mailTo.getCc(); 
      Intent mail = new Intent(Intent.ACTION_SEND,Uri.parse(url)); 
      mail.setType("application/octet-stream"); 
      mail.putExtra(Intent.EXTRA_EMAIL, new String[]{emailAddress}); 
      mail.putExtra(Intent.EXTRA_SUBJECT, subject); 
      mail.putExtra(Intent.EXTRA_TEXT, body); 
      mail.putExtra(Intent.EXTRA_CC, cc); 
      startActivity(mail); 
      return true; 
     } 
     return false; 
    } 
: <a href="mailto:?subject=Check out this product&amp;body=I found this awesome product%20http://www.example.com/product-detail/61/" title="Email to a Friend" class=""><span>Email to a Friend</span></a>

내가 shouldOverrideUrlLoading 방법에 안드로이드 측에 다음 코드를 포함

연락처와 잘 작동합니다. 그러나, 그것은 친구에게 전자 우편을 사용하지 않습니다. SubjectComposed email 필드에는 공백이 있지만, /product-detail/105/ 필드는 공백이어야합니다. To 필드에는 공백이 있어야합니다. 모바일 브라우저에서 웹 사이트를 열면 제대로 작동합니다. 그래서, 위의 코드에서이 문제를 처리하기 위해 webview를 위해 무엇을해야합니까? 이것을 해결하기 위해 무엇을 할 수 있습니까?

+0

는이'mail.setType ("메시지/RFC822")를 시도 했습니까,'.If 대신 mail.setType'의이 시도하지 ("응용 프로그램/octet-stream "); ' –

+0

나는 이것을 이미 사용하고있다 :'mail.setType ("application/octet-stream ");'. 위의 발췌문을 참조하십시오. 어떻게 여러 개의 'mailto'를 처리합니까? –

+0

이'mail.setType ("message/rfc822");을 시도 할 것을 제안했습니다. –

답변

1

내가 이것을 사용하여 내 문제를 해결 :

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (url.startsWith("tel:")) { 
      Intent tel = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); 
      startActivity(tel); 
      return true; 
     } 
     else if (url.contains("mailto:")) { 
      view.getContext().startActivity(
        new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
      return true; 

     }else {  
      view.loadUrl(url); 
      return true; 
     } 
    } 
관련 문제