我使用webVIew读取本地HTML。 HTML存储位置 资产项目
有些手机可以成功使用(三星...) 有些手机不能(HTC nexus ......)
这是我的代码
public class MainActivity extends Activity {
private WebView wvBrowser;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (wvBrowser.canGoBack() && event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
wvBrowser.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void findViews() {
wvBrowser = (WebView) findViewById(R.id.Browser);
//wvBrowser.loadUrl(getString(R.string.googleUrl));
wvBrowser.getSettings().setSupportZoom(true);
wvBrowser.getSettings().setBuiltInZoomControls(true);
wvBrowser.loadUrl("file:///android_asset/ts.htm");
}
}
答案 0 :(得分:8)
只想添加一个答案。有人可能会觉得我的建议很有帮助。 您需要在AndroidManifest.xml中添加uses-permission。我通过添加此行
修复了类似的错误<uses-permission android:name="android.permission.INTERNET" />
答案 1 :(得分:3)
尝试此链接可以更好地帮助您webview
将WebViewClient附加到WebView,您可以在其中覆盖onReceivedError()
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
});
答案 2 :(得分:1)
这是你的解决方案
根据文档和我的经验,它应该工作得很好。您只需在 WebView 中使用覆盖方法 onReceivedError 设置 WebClient 。
以下是我的一些旧测试应用的片段:
wvBrowser = (WebView) findViewById(R.id.Browser);
wvBrowser.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.i("WEB_VIEW_TEST", "error code:" + errorCode);
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
我测试了它并且它工作得很好。检查您的日志,看看你得到了什么样的代码错误。
这可以在http://developer.android.com/reference/android/webkit/WebView.html
上找到希望它有所帮助。