草庐IT

Android:使用 WebView.loadUrl 加载 JavaScript 但保留软键盘

当用户单击WebView中的(html)Textfield时,将显示软键盘。但是当我用WebView.loadUrl()加载一些JS时,软键盘消失了。我理解您加载新页面时的行为。但是如何在加载JS时更改WebView的行为?有没有其他方式加载JS?我还尝试手动处理键盘。但是弊端太多了。确定是否显示键盘很复杂。我将不得不改变我的布局:HowtocheckvisibilityofsoftwarekeyboardinAndroid?并且键盘将不再受WebView的控制。问:如何在不影响软键盘的情况下加载JS到WebView? 最佳答案 加

android webview 和 loadData,我可以获得后退按钮以返回到生成的内容吗?

我有一个androidwebview,它显示带有loadDataWithBaseURL的生成内容。看起来很棒。但是,如果我点击一个链接然后点击后退按钮,我会得到一个空白页面,我想在其中查看我生成的内容。有谁知道如何使用后退按钮返回到我生成的内容? 最佳答案 试试这个:mWebView.setOnKeyListener(newOnKeyListener(){publicbooleanonKey(Viewv,intkeyCode,KeyEventevent){switch(keyCode){caseKeyEvent.KEYCODE_BA

android - 如何设置 webview 的滚动性能?

我将url(例如mail.google.com)加载到我的应用程序的webview中,然后在网页上滚动太慢了!在SamsungGalaxyTab10.1、MotorolaDroidX、AcerLiquid等设备上测试。为什么?我尝试使用的参数:webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);webView.setRenderPriority(RenderPriority.HIGH); 最佳答案 将android:hardwareAccelerated="tr

Android WebView 协议(protocol)处理程序

我正在尝试使用WebView开发一个Android浏览器应用程序这使用户能够从自定义协议(protocol)访问内容。自定义协议(protocol)可以是foobar://我想拦截对这个自定义协议(protocol)的所有请求。这意味着:获取请求POST请求我需要能够将这些操作的结果返回给WebView。可以使用shouldInterceptRequest处理GET请求(从API级别11开始可用)。现在我的问题是:如何拦截和处理POST请求?几乎问过同样的问题here和here,但是没有找到解决他们问题的方法。 最佳答案 你有没有试

android - 保存 WebView 的状态并在 ANDROID 中恢复

我有一个Android应用程序,它使用ViewPager构建,并在每个页面中分隔WebView。每个WebView指向不同的网站。例如,Page1:facebook,Page2:Twitter,Page3:Google+。用户可以添加/删除页面。我的mPager.setOffscreenPageLimit(1)(其中mPager是ViewPager的实例)。这意味着,当用户查看3.页面时,将处理第一个fragment(并在用户再次查看2.页面时重新创建)。我想要的是在销毁之前首先保存WebView的状态并将其状态保存在某处,然后在用户看到它时恢复它。因为它会重新加载页面,而且显然很烦人

android webview 加载https白屏,设置忽略证书

mWebview.setWebViewClient(newWebViewClient(){     @Override     publicvoidonReceivedSslError(WebViewview,SslErrorHandlerhandler,SslErrorerror){            //super.onReceivedSslError(view,handler,error);        //handler.cancel();//super中默认的处理方式,WebView变成空白页        if(handler!=null){          handler

Android软键盘不平移 WebView

我正在解决的原始问题更为复杂,但出于调查目的,我已将测试用例简化为以下内容:单个全屏Activity以编程方式创建的WebView占据大约一半的水平屏幕空间和90%的垂直空间,并通过onCreate调用添加到RootView:ViewGroupparent=(ViewGroup)getWindow().getDecorView().getRootView();parent.addView(myWebView);WebView通过以下方式打开到google.com:loadUrl("http://google.com")AndroidManifest.xml具有以下属性:"android

android - 防止在 android webview 上的 jquerymobile 中滑动时触发点击事件

我有一个使用jQueryMobile1.4和Backbone.js的Phonegap3应用程序。在这个应用程序中,我使用'swipeleft'和'swiperight'事件来显示表单的不同部分(滑动显示上一个/下一个div)。这工作正常,但我的问题是,如果我用手指在复选框顶部滑动,复选框会在滑动被触发之前收到点击事件,因此复选框状态会改变。我在其他小部件中也看到了这一点,但复选框似乎足以解释这个问题。我在台式机上的chrome和Kitkat中的新chromewebview上都没有问题,但在Gingerbread和JellyBean(较旧的webkitwebview)中有问题。我在事件处

android - LeakCanary 发现 Android WebView 内存泄漏

我一直在使用工具leakcanary发现我的应用程序中的内存泄漏。似乎我的WebViewActivity每次都会泄漏。我创建了一个简单的应用程序来测试泄漏。我在xml布局文件中启动一个带有WebView的Activity/使用Activity上下文进行膨胀。Js关闭。一切都默认期望一个简单的webViewClient在WebView中保持重定向。每次都漏水。我做了很多研究,防止这种情况的唯一方法是用另一个进程启动WebViewActivity并在onDestroy中将其终止。但这种方法有其自身的缺点。在我所有运行5.0+的设备上每次都会发生泄漏,尚未检查4.3及以下版本。泄漏信息粘贴在

android - 向 shouldInterceptRequest Android webview 中的所有请求添加自定义 header

我想在webview中为请求添加自定义header。我认为应该可以在shouldInterceptRequest中完成。因为我的最低API级别低于21shouldInterceptRequest(最终WebViewView,最终Stringurl)也被调用并且因此我也需要在此处添加header,但我不确定如何添加。@OverridepublicWebResourceResponseshouldInterceptRequest(WebViewview,WebResourceRequestrequest){if(Build.VERSION.SDK_INT>=Build.VERSION_CO