我使用以下代码就可以了.所有的http网址都在webview中打开,"tel:"链接在拨号器中打开,"mailto:"链接在电子邮件客户端中打开.
但我的问题是如何将"mailto:"链接的主题更改为不同于预定义主题的内容.我猜测应该有2个单独的意图,1个用于"tel:"链接,1个用于"mailto:"链接.我根本不知道如何将代码放入下面的shouldOverrideUrlLoading方法中.或者我可能正在使用错误的方法来满足我的需求.
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if( url.startsWith("http:") || url.startsWith("https:") ) { return false; } // Otherwise allow the OS to handle it Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; }
我设法让我自己的主题"mailto:"与Intent合作,但代码中没有包含"tel:"链接.那么我怎样才能在"mailto:"链接中使用我自己的主题呢?
任何想法或建议将不胜感激!
这是我的解决方案,它对我有用.我希望它能帮助其他人解决我遇到的同样问题.
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if( url.startsWith("http:") || url.startsWith("https:") ) { return false; } // Otherwise allow the OS to handle it else if (url.startsWith("tel:")) { Intent tel = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); startActivity(tel); return true; } else if (url.startsWith("mailto:")) { String body = "Enter your Question, Enquiry or Feedback below:\n\n"; Intent mail = new Intent(Intent.ACTION_SEND); mail.setType("application/octet-stream"); mail.putExtra(Intent.EXTRA_EMAIL, new String[]{"email address"}); mail.putExtra(Intent.EXTRA_SUBJECT, "Subject"); mail.putExtra(Intent.EXTRA_TEXT, body); startActivity(mail); return true; } return true; }