Voici quelques choses à essayer:
Pour utiliser les fichiers locaux, vous devez les placer dans votre dossier de projet actif et invoquer leur utilisation des URL telles que file: /// android_asset /. Par exemple, si vous ajoutez mypage.html dans votre dossier assets, vous pouvez l'appeler dans le webview avec le fichier: ///android_asset/mypage.html.
Vérifiez que vous disposez des autorisations de visualisation Web appropriées dans votre manifeste. Pour le WebView fonctionne correctement, vous avez besoin:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Jetez un oeil à l'application suivante sur Github, qui, comme un bonus fixe également quelques bugs avec le WebView dans Honeycomb et ICS. Il est un exemple complet sur la façon d'utiliser le WebView avec des fichiers locaux: https://github.com/bricolsoftconsulting/WebViewIssue17535FixDemo
EDIT: Addendum après la clarification de la question:
Oui, il est possible de charger une page locale à partir du Web, mais vous devez utiliser une astuce pour contourner les mesures de sécurité du navigateur.
Remplacez le fichier: // android_asset/partie des URL par un schéma personnalisé (par exemple, le fichier /// android_asset/mypage.html devient myscheme: ///mypage.html), et placez ces URL de schéma personnalisées dans votre page. Implémentez le shouldOverrideUrlLoading
de WebViewClient, vérifiez si l'URL commence par le schéma personnalisé et, si tel est le cas, redirigez vers la page locale à l'aide de webview.loadUrl.
mWebView.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url != null && url.startsWith("myscheme://"))
{
String newUrl = url.replace("myscheme://", "file://android_asset/");
mWebView.loadUrl(newUrl);
return true;
}
return false;
}
}
postez votre code et où vous avez mis le fichier? –
Cela peut être un mécanisme de sécurité. J'ai essayé un lien de fichier: ///mnt/sdcard/some.jpg sur une page Web de test, et j'ai constaté qu'il n'essaierait même pas de charger lorsqu'on clique sur un appareil Android. Cependant, si j'ai longtemps appuyé sur le lien et sélectionné 'ouvrir' dans le menu contextuel, alors l'image locale référencée s'ouvrirait réellement. Je l'ai essayé avec un fichier HTML aussi. –