Android:如何在本地css文件中打开URL

Android:如何在本地css文件中打开URL,android,css,url,webview,Android,Css,Url,Webview,我有一个本地css文件,我加载到一个WebView中,它显示没有问题。它是一个联系人屏幕,所以它有一个电话号码、电子邮件地址和一个网站。当我点击电话号码或电子邮件地址时,手机会(分别)打开拨号器或电子邮件应用程序,没有问题,但我无法打开网站的URL。我在下面包括了我的webView设置和css文件 WebView webView = (WebView) findViewById(R.id.webView); webView.setWebViewClient(new WebViewClient()

我有一个本地css文件,我加载到一个WebView中,它显示没有问题。它是一个联系人屏幕,所以它有一个电话号码、电子邮件地址和一个网站。当我点击电话号码或电子邮件地址时,手机会(分别)打开拨号器或电子邮件应用程序,没有问题,但我无法打开网站的URL。我在下面包括了我的webView设置和css文件

WebView webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient());

webView.loadUrl("file://" + htmlManager.htmlFilePath(HtmlManager.kHtmlFilenameContactUs));
CSS


电话:
123.456.7890
电邮:
网站:

您应该像这样扩展您的
WebViewClient

public static class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("mailto:")) {
            MailTo mt = MailTo.parse(url);
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("text/plain");
            i.putExtra(Intent.EXTRA_EMAIL, new String[] { mt.getTo() });
            i.putExtra(Intent.EXTRA_SUBJECT, mt.getSubject());
            i.putExtra(Intent.EXTRA_CC, mt.getCc());
            i.putExtra(Intent.EXTRA_TEXT, mt.getBody());
            mContext.startActivity(Intent.createChooser(i, "Send mail..."));
            return true;
        } else if (url.startsWith("http://")) {
            view.loadUrl(url);
            return true;
        }
        return true;
    }
};
    webView.loadUrl("javascript:(function(){ /*code that removes attribute*/ })()");
别忘了将客户端设置为
WebView

        webView.setWebViewClient(new MyWebViewClient ());
编辑:我刚刚注意到URI包含属性target=“\u blank”。你也不应该这样

    webView.getSettings().setSupportMultipleWindows(true);
或者像这样使用javascript进行肮脏攻击并删除target=“\u blank”

public static class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("mailto:")) {
            MailTo mt = MailTo.parse(url);
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("text/plain");
            i.putExtra(Intent.EXTRA_EMAIL, new String[] { mt.getTo() });
            i.putExtra(Intent.EXTRA_SUBJECT, mt.getSubject());
            i.putExtra(Intent.EXTRA_CC, mt.getCc());
            i.putExtra(Intent.EXTRA_TEXT, mt.getBody());
            mContext.startActivity(Intent.createChooser(i, "Send mail..."));
            return true;
        } else if (url.startsWith("http://")) {
            view.loadUrl(url);
            return true;
        }
        return true;
    }
};
    webView.loadUrl("javascript:(function(){ /*code that removes attribute*/ })()");

取决于您是想在新的浏览器窗口中打开URL,还是想在
网络视图中加载URL

谢谢您的快速响应!我实现了代码,但仍然无法加载url。我运行了调试器,当我单击mailto时:webViewClient正在调用正确的代码,但当我单击url时,它不会调用任何东西。当我点击链接
05-23 10:10:51.802:V/webview(17551):singleCursorHandlerTouchEvent-getEditableSupport FASLE
05-23 10:10:52.122:D/webview(17551):blockWebkitViewMessage=False抱歉,我是StackOverflow新手,还没有弄清楚如何格式化我的问题/评论