WebView基本用法
如果想要在APP里面加载url网页,或者html代码,首先我们会想到WebView,它的基本用法如下:
webview_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"android:orientation="vertical" ><WebView android:id="@+id/survey_webview"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>
MainActivity.java
WebView mWebView= (WebView) this.findViewById(R.id.survey_webview);// 设置支持js,默认为false// mWebView.getSettings().setJavaScriptEnabled(true);// 设置缓存模式:不使用缓存// mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);// 加载指定url链接mWebView.loadUrl(URL);// 加载本地html代码可以使用如下方法// mWebView.public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl);// 举个栗子:// mWebView.loadDataWithBaseURL(null, htmlData, "txt/html", "utf-8", null);mWeb.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// 在APP内部打开链接,不要调用系统浏览器view.loadUrl(url);return true;}});
使用以上代码基本可以实现一个网页的加载了。
摊上大事了
BUT!!!为什么我的网页只加载出一部分,下面就不加载了?今天就要发版本了有木有??
多谢logcat小猫帮我捕捉到一条log:
I/chromium(27693): [INFO:CONSOLE(8)] “Uncaught TypeError: Cannot call method ‘getItem’ of null”, source: url
在stackoverflow大神的帮助下解决该问题,网页加载不完成并报出如上错误时,有可能是你的DOM储存API没有打开,在代码中加上一行:
mWebView.getSettings().setDomStorageEnabled(true);
网页华丽丽的加载出来了,希望本文对大家有所帮助。
本文作者xiong_it,本文链接:/Xiong_IT/article/details/50549340
参考链接
/questions/4930623/webview-causing-uncaught-typeerror-when-loading-www-google-com