我正在为使用 JavaScript 的公司开发 EPUB 阅读器,该应用程序在 Android 2.2 上运行良好,但是当我在 ICS 和 HoneyCom 上尝试时,JavaScript 无法正常运行。我遇到的第一个问题,WebView
不加载 JS 文件(Unknown Error -6
),所以我使用了这个解决方案:
@TargetApi(11)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
Log.d("shouldInterceptRequest", url);
InputStream stream = inputStreamForAndroidResource(url);
if (stream != null) {
return new WebResourceResponse("text/javascript", "utf-8", stream);
}
return super.shouldInterceptRequest(view, url);
}
private InputStream inputStreamForAndroidResource(String url) {
final String ANDROID_ASSET = "file:///android_asset/";
if (url.contains(ANDROID_ASSET)) {
// url = url.replaceFirst(ANDROID_ASSET, "");
String[] f = url.split("/");
url = "epub/"
+ f[f.length - 1]
.substring(0, f[f.length - 1].indexOf("'"));
try {
AssetManager assets = mActivity.getAssets();
Uri uri = Uri.parse(url);
return assets
.open(uri.getPath(), AssetManager.ACCESS_STREAMING);
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
现在我没有这个错误,但JS仍然不起作用。有没有人有办法解决吗?