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ブラウザーをポップアップします。そのURL

于 2013-01-27T15:51:12.510 に答える