0

我正在为我在 WebView 中显示的应用程序创建帮助页面。我可以很容易地看到主页,但我不知道如何关注本地超链接。

到目前为止,这是我的代码:

@Override
public void onCreate(Bundle savedInstanceState) {
  ...
  content = (WebView) findViewById(R.id.content);
  content.loadData(getTextFromResource(R.raw.help_main), "text/html", "utf-8");
  content.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      view.loadUrl(url);
      return true;
    }
  });
}

private String getTextFromResource(int aResourceId) {
  InputStream vRaw = getResources().openRawResource(aResourceId);
  ByteArrayOutputStream vStream = new ByteArrayOutputStream();
  try {
    int i = vRaw.read();
    while (i != -1) {
      vStream.write(i);
      i = vRaw.read();
    }
    vRaw.close();
  } catch (IOException e) {
  }
  return vStream.toString();
}

并在/res/raw/help_main.html

<h1>Help menu</h1>
<ul>
  <li><a href="help_overview.html">Overview</a></li>
  ...
</ul>

该链接永远不会指向概述页面,我尝试使用这些 URL,但没有任何效果:

  • help_overview.html
  • ./help_overview.html
  • 文件://res/raw/help_overview.html
  • 文件://android_asset/help_overview.html
  • 文件://android_res/raw/help_overview.html

互联网链接有效,但本地链接无效,我应该使用什么 URL?

我已经看到问题Local html page \raw\ folder in webview with links to another html page,但它的答案并没有说明我应该提供什么URL。

4

2 回答 2

3

最简单的方法可能是将您的网络资源放入资产文件夹然后调用

webView.loadUrl("file:///android_asset/filename.html");.
于 2013-06-05T06:46:03.610 回答
0
webView.loadUrl("file:///android_asset/www/index.html");
于 2013-06-05T06:41:48.160 回答