Android的WebView中显示了本地文件的空白页 [英] Android WebView showing blank page for local files

查看:278
本文介绍了Android的WebView中显示了本地文件的空白页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Andr​​oid的WebView呈现出空白页,当我尝试加载文件:///android_asset/index.html和它完美地加载其他网址如http://twitter.com

My android WebView is showing a blank page when I try to load "file:///android_asset/index.html" and it perfectly loads other url like "http://twitter.com".

我的活动

public class MainActivity  extends ActionBarActivity  {

    private WebView myWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myWebView = (WebView) findViewById(R.id.webview);

        myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");

        myWebView.setWebViewClient(new WebViewClient());
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        myWebView.loadUrl("file:///android_asset/index.html");
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
            myWebView.loadUrl("file:///android_asset/index.html");
            return true;
        }
        return false;
    }
}

我的index.html文件:

My index.html file :

<!DOCTYPE html>
<html>
<head>
    <title>World Tour</title>
    <!-- Sets initial viewport load and disables zooming  -->
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">

    <!-- Makes your prototype chrome-less once bookmarked to your phone's home screen -->
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="mobile-web-app-capable" content="yes">

    <link rel="stylesheet" type="text/css" href="css/style.css">
    <link rel="stylesheet" type="text/css" href="css/ratchet.css">
</head>
<body>
    <header class="bar bar-footer">
        <a href="views/stats.html" data-transition="slide-out"><span class="icon icon-info pull-left" ></span></a>
        <a href="views/add.html" data-transition="slide-in"><span class="icon icon-plus pull-right" ></span></a>
        <h1 class="title">List of previous drive</h1>
    </header>

    <div class="content">
        <div class="card">
            <ul id="drives-list" class="table-view">
                <li class="table-view-divider table-view-cell" ><p class="pull-left">Comments</p><p class="pull-right">Distance</p></li>
            </ul>
        </div>
    </div>

    <script type="text/javascript" src="js/main.js" ></script>
    <script type="text/javascript" src="js/ratchet.js" ></script>
</body>
</html>

感谢您的帮助!

推荐答案

从资产产生的文件使用下面code得到字符串内容

get string content from your assests file using below code

    public static String getStringFromAssets(String name, Context p_context)
    {
        try
        {
            InputStream is = p_context.getAssets().open(name);
            int size = is.available();
            byte[] buffer = new byte[size];
            is.read(buffer);
            is.close();
            String bufferString = new String(buffer);
            return bufferString;
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return null;

    }

和使用下面code加载内容

and load content using below code

String m_data = getStringFromAssets("index.html", this);
webView.loadDataWithBaseURL("file:///android_asset/", m_data, "text/html", "utf-8", null);

希望它为你工作!

Hope it works for you !!

这篇关于Android的WebView中显示了本地文件的空白页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆