带有离线页面的WebView(HTML5)

时间:2015-03-02 17:16:02

标签: android html5 android-webview chromium

我正在尝试使用WebView向用户显示交互式HTML5页面。下载并解压缩必要的内容并使用web.loadUrl("file:///" + uri.toString());启动WebView。虽然大多数工作都没有音频,但LogCat告诉我以下内容:

03-02 17:58:58.082  12066-12205/- D/MediaResourceGetter﹕ canonicalized file path: /data/data/${package.name}/cache/684.unpacked/story_content/video_6kjafYSyahO_30_48_370x208.mp4   
03-02 17:58:58.083  12066-12205/- E/MediaResourceGetter﹕ Refusing to read from unsafe file location.`  
03-02 17:58:58.083  12066-12205/- E/MediaResourceGetter﹕ Unable to configure metadata extractor

我选择缓存目录,因为根据MediaResourceGetter的来源,这应该是一个安全的位置 这就是我配置WebView的方式:

WebSettings s = web.getSettings();  
s.setBuiltInZoomControls(true);  
s.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);  
s.setUseWideViewPort(true);  
s.setLoadWithOverviewMode(true);  
s.setSavePassword(true);  
s.setSaveFormData(true);  
s.setJavaScriptEnabled(true);  

s.setGeolocationEnabled(true);  
s.setGeolocationDatabasePath("/data/data/" + getPackageName() +  "/geoloc/");  

s.setDomStorageEnabled(true);  

s.setJavaScriptEnabled(true);  
s.setPluginState(WebSettings.PluginState.ON);  
s.setAllowFileAccess(true);  
s.setAllowContentAccess(true);  
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {  
  s.setAllowFileAccessFromFileURLs(true);  
  s.setAllowUniversalAccessFromFileURLs(true);  
}  

2 个答案:

答案 0 :(得分:1)

基于getRawAcceptableDirectories jq --null-input --raw-input \ 'reduce inputs as $line ({}; .[input_filename] += [$line]) | map_values(join("\n"))' \ index.html style.css main.js 方法,WebView应该允许从应用缓存目录和SD卡目录中读取文件。

答案 1 :(得分:0)

这就是我工作......

将您的html文件添加到" / main / assets / app /"目录

并编写代码:

w.loadUrl("文件:///android_asset/app/YOUR_HTML_FILE_NAME.html");