今天设计了一个WebView打开指定的URL的Android程序,原以为,只需要通过mWebview = (WebView) findViewById(R.id.main_webview);获取到WebView控件,然后利用它加载一个指定的URL就可以了,恩,的确是可以加载网页,比如我加载的是www.baidu.com,则确实是打开的百度的网页,可是点击百度网页上其他的按钮时,却没有任何响应,查询了下logcat中返回的信息,显示singleCursorHandlerTouchEvent -getEditableSupport FASLE。
在网络上找了一些资料,有很多解决方法,包括添加权限、覆盖WebView的WebViewClient对象等方法,仍然没有解决我的问题,根据自己以前的经验,终于找到解决方法,特记录下来,以备后续使用。
第一步:为程序添加权限, 添加<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />, <uses-permission android:name="android.permission.INTERNET" />,添加这两个权限;
第二步:通过mWebview = (WebView) findViewById(R.id.main_webview);获取到WebView控件,并覆盖它的WebViewClient,这是因为,我们要在自己的WebView里面,打开URL,如果没有覆盖它,则会调用Android系统默认的浏览器,打开我们的URL,覆盖之后,需要在WebViewClient里面重载onPageFinished, onPageStarted,onLoadResource,onReceivedError这几个接口,如需要可以做相应的处理,一般都没有做处理;
第三步:通过接口mWebview.getSettings();获取WebView的设置参数变量,设置wSetting.setJavaScriptEnabled(true);这一步是最关键的,很多童鞋出现如题中的错误就是因为这个属性设置漏掉了;
第四步:利用mWebview.loadUrl(URL);加载我们所需要加载的url;
OK,具体的操作步骤就是如此,希望对某些童鞋有些用处,也希望以后遇到类似的问题,可以给自己一个解决的思路!