【问题标题】:How can a WebView display a local page through a hyperlink?WebView如何通过超链接显示本地页面?
【发布时间】:2013-05-31 17:59:57
【问题描述】:

我正在为我在 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
  • file://res/raw/help_overview.html
  • file://android_asset/help_overview.html
  • file://android_res/raw/help_overview.html

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

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

【问题讨论】:

    标签: android hyperlink android-webview


    【解决方案1】:

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

    webView.loadUrl("file:///android_asset/filename.html");.
    

    【讨论】:

    • 酷!非常感谢,它奏效了。您刚刚为自己赢得了第一个被接受的答案!
    【解决方案2】:
    webView.loadUrl("file:///android_asset/www/index.html");
    

    【讨论】:

    • 这是一个简短而无用的答案 :-(.
    • 不,不是。我先试了你的版本,还是不行。我试过他的,效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2017-03-31
    • 1970-01-01
    相关资源
    最近更新 更多