1

我正在使用 WebView 来显示存储在 \raw\ 目录中的 html 页面,以便我可以轻松地对其进行本地化。我使用加载页面

 InputStream inputStream = getResources().openRawResource(R.id.htmlPage1);
 StringWriter writer = new StringWriter();
 try {
     IOUtils.copy(inputStream, writer);
 } catch (IOException e) {
     e.printStackTrace();
 }
 String x = writer.toString();
 WebView w = (WebView) myFragmentView.findViewById(R.id.webView);
 w.loadDataWithBaseURL("file:///android_asset/", x, "text/html", "utf-8", null);

效果很好。html 页面中使用的图像和 css 文件存储在 \assets\ 目录中。

现在我想在我的 html 页面中添加指向另一个本地页面 (<a href="htmlPage2.html">单击此处</a>) 的链接。WebView 尝试从资产加载页面(这似乎是正确的行为)。不幸的是,\assets\ 文件夹没有本地化。

如何在不放弃本地化功能的情况下链接到其他本地 html 页面?

谢谢!

4

1 回答 1

0

第 1 步:可能为链接使用更独特的 URL 模式以帮助您区分它们(例如,<a href="/this/is/another/raw/resource/htmlPage2.html">

第 2 步:WebViewClient在您的网站上注册WebView

第 3 步:在shouldOverrideUrlLoading()您的WebViewClient中,如果 URL 与您用于这些链接的模式匹配(参见第 1 步),请检查您的加载资源逻辑并返回true,否则什么也不做并返回false以弹出 Web 浏览器那个网址

于 2013-01-27T15:51:12.510 回答