いくつかのことを試してみてください。
ローカル ファイルを使用するには、それらをプロジェクトのアセット フォルダーに配置し、file:///android_asset/ などの URL を使用して呼び出す必要があります。たとえば、assets フォルダーに mypage.html を追加すると、webview で file:///android_asset/mypage.html を使用して呼び出すことができます。
マニフェストに適切な webview 権限があることを確認してください。WebView が正しく機能するには、次のものが必要です。
<uses-permission android:name="android.permission.INTERNET" />
Github で次のアプリを見てみましょう。おまけとして、Honeycomb と ICS の webview に関するいくつかのバグも修正されています。これは、ローカル ファイルで webview を使用する方法の完全な例です:
https://github.com/bricolsoftconsulting/WebViewIssue17535FixDemo
編集:質問の明確化後の補遺:
はい、Web からローカル ページを読み込むことは可能ですが、ブラウザのセキュリティ対策をバイパスするトリックを使用する必要があります。
URL の file://android_asset/ 部分をカスタム スキームに置き換え (例: file///android_asset/mypage.html は myscheme:///mypage.html になります)、これらのカスタム スキーム URL をページに配置します。WebViewClient のshouldOverrideUrlLoading
を実装し、URL がカスタム スキームで始まるかどうかを確認し、そうであれば webview.loadUrl を使用してローカル ページにリダイレクトします。
mWebView.setWebViewClient(新しい WebViewClient()
{
@オーバーライド
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url != null && url.startsWith("myscheme://"))
{
String newUrl = url.replace("myscheme://", "file://android_asset/");
mWebView.loadUrl(newUrl);
true を返します。
}
false を返します。
}
}