Articles of webviewclient

寻找具有多个WebView的Android ViewFlipper示例

我相信大家都知道。 设置WebView需要创建Webview浏览器客户端,设置属性并将资源加载到浏览器客户端。 我已经创建了几个Android应用程序。 我现在想要尝试的是横向扫描不同的网络资源。 想象一下一个url的主要主页,另一个url的类别页面和另一个url的搜索页面。 我想创建一个UI构造,允许从主要主页url视图滑动到显示类别url的视图,然后是另一个用搜索资源显示视图的滑动(想想新的android市场UI – 向左滑动显示类别) 。 我已经阅读了ViewFlipper和几篇post,但是我无法find如何将浏览器实例化与视图翻转/滑动集成的综合示例。 问题:有人可以提供一个示例,可以执行上述的一些变化和/或提供一个示例的链接,该示例显示浏览器实例化与Web视图翻转/滑动。 随意纠正我建议的实施…可能有一个更好的方法来做到这一点,我还没有考虑…

Android WebView协议处理程序

我正在尝试使用WebView开发Android浏览器应用程序,使用户能够从自定义协议访问内容。 自定义协议可能是foob​​ar:// 我想拦截对此自定义协议的所有请求。 意即: GET请求 POST请求 我需要能够将这些操作的结果交还给WebView。 可以使用shouldInterceptRequest (可从API级别11获得)处理GET请求。 现在我的问题是: 我如何能够接受和处理POST请求 ? 在这里和这里已经提出了几乎相同的问题,但是没有find他们的问题的解决方案。

Android WebClient,通过WebResourceResponse返回图像资源 – 不显示图像

我有一个简单的WebViewClient用于我的WebView并且重写了shouldInterceptRequest :(不是实际的代码) public class WebViewClientBook extends WebViewClient { @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { File file = new File(“pathToTheFile.jpeg”); FileInputStream inputStream = new FileInputStream(file); return new WebResourceResponse(“image/jpeg”, “UTF-8”, inputStream); } } 由于某种原因,WebClient无法显示图像…我相信它可能与不正确的编码有关:UTF-8。 有什么建议可以作为替代方案吗? 谢谢!

如何在加载WebView页面时为警报对话框设置不同的标题?

我想在加载WebView页面时为警报对话框设置不同的标题,但它不起作用。 这是代码片段: final AlertDialog.Builder alert = new AlertDialog.Builder( mContext); // alert.setTitle(“Loading…”); final WebView wv = new WebView(mContext); wv.loadUrl(“http://10.0.51.133/androidview/”); wv.getSettings().setJavaScriptEnabled(true); wv.setVerticalScrollBarEnabled(false); WebViewClientLoader loader= new WebViewClientLoader(alert); wv.setWebViewClient(loader); wv.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub alert.setTitle(“Loading…”); super.onPageFinished(view, url); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { […]

禁用Android WebView / WebViewClient启动的favicon.ico请求

当我调用WebView.loadUrl()时,如何禁止Android WebView / WebViewClient发送对favicon.ico的请求? 我可以看到在通过CharlesProxy分析请求时进行的调用。 我不拥有我在WebView中显示的HTML内容。 我的研究已经从服务器端find了很多关于变通方法的结果,但这些对我来说不起作用。

WebView.loadUrl()中的Android JS

我想在WebView中加载一个网页,但删除部分网页。 所以,我创建了一个自定义WebViewClient。 并且,在onPageFinished()中,我做了一些javascript来删除一些元素。 然后,我使WebView可见。 但是,当我运行它时,它将视图设置为可见,然后我看到要删除的元素。 就好像JS在后台运行非常慢。 它会创建一个糟糕的观看体验,因为它会闪烁整个页面,然后闪烁所需的部分页面。 这是我的onPageFinished() @Override public void onPageFinished(WebView view, String url) { view.loadUrl(“javascript:” + “document.getElementsByClassName(‘header’)[0].style.display=’none’;” + “document.getElementById(‘section_0′).style.display=’none’;” + “document.getElementById(‘page-actions’).style.display=’none’;” + “document.getElementsByClassName(‘languageSelector’)[0].style.display=’none’;” + “document.getElementById(‘mw-mf-last-modified’).style.display=’none’;” + “document.getElementById(‘footer’).style.display=’none’;”); loadingView.setVisibility(View.INVISIBLE); view.setVisibility(View.VISIBLE); } 有想法该怎么解决这个吗?

WebView – 没有请求两次就无法下载文件?

如果我使用DownloadListener监听,我会在浏览器请求后获取我需要请求的URL。 浏览器已经打开了与URL的连接(这就是它知道这是一个下载的方式),为什么它不能通过我的连接? 我还尝试将自定义WebViewClient分配给WebView并使用shouldOverrideUrlLoading在请求之前捕获URL。 要以这种方式下载文件,我在浏览器之前请求每个URL,然后通过它的Content-Type I决定是否下载它,如果是,那么我从已经打开的连接下载它,否则我关闭连接并指示浏览器加载它,浏览器……再次请求它。 另外,在shouldOverrideUrlLoading我没有告诉我应该使用哪种方法和哪些cookie来请求给定的URL。 我怎么能不必要地请求两次仍然能够使用WebView下载文件?

添加WebViewClient时,Android WebView忽略target =“_ blank”

我面临一个奇怪的问题。 在我的应用程序中,我需要根据资产文件夹中的WebView中的单击按钮加载静态html文件。 现在在5个html文件中,一个html文件包含15个静态链接。 这些链接需要在移动浏览器中将用户重定向到提到的URL。 我在html文件中使用了target=”_blank” ,如下所示。 Railway Reservation 现在,这在带有简单WebView的示例应用程序中工作正常,而没有添加任何WebViewClient 。 但我需要一个WebViewClient来实现其他function。 所以当时target=”_blank”完全被忽略了。 并且URL在WebView本身中打开。 我find了一个解决方法,我可以使用shouldOverrideUrlLoading ,如下所示: myWebView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub if(url.equalsIgnoreCase(“https://www.irctc.co.in/”)) { view.getContext().startActivity( new Intent(Intent.ACTION_VIEW, Uri.parse(url))); return true; } else return super.shouldOverrideUrlLoading(view, url); } }); 所以这是在默认浏览器中打开该特定URL。 基本上我的问题是: 为什么在使用WebViewClient会忽略target=”_blank” ? 这个问题还有其他解决方法吗? 因为我有15个链接,我需要比较。 我无法在新浏览器中加载所有url,因为有一些链接需要在同一个WebView中打开。

不会因404错误而调用Android WebViewClient onReceivedError

嗨 在列表视图中我有一个webview应该从服务器加载图像文件,当没有图像存在时,我需要一个虚拟图像。我试过 holder.image.setWebViewClient(new WebViewClient() { @Override public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) { System.out.println(“description error” + description); view.setVisibility( View.GONE ); } @Override public void onPageFinished(WebView view, String url) { view.setVisibility( View.VISIBLE ); } }); 我在FrameLayout中有一个虚拟图像的webview,在每个图像url加载后调用onPageFinished监听器,但是没有为产生404错误的url调用onReceivedError。任何猜测如何做。

在webViewClient中停止加载

在我的WebView中,我在标题中有多个链接。 在离线模式下,我不能允许重新加载页面并按原样保留该页面,然后通知用户有关互联网连接的信息。 如果我点击其他链接,我可以在使用shouldOverrideUrlLoading加载之前捕获链接。 但是,如果我单击相同的链接,则不会触发onLoadResource ,而是首先调用onLoadResource方法。 在那个方法中我尝试了webView.stopLoading(); 但它继续工作并触发onReceivedError方法并在页面上显示错误报告。 这是我的WebClient: webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(MyApplication.getInstance().isOnline()) { return false; } Toast.makeText(getApplicationContext(), “Please check Internet connection and try again.”, Toast.LENGTH_SHORT).show(); return true; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.i(“ON_PAGE_START”, “RUNNING ============>” + url); if (MyApplication.getInstance().isOnline()) { super.onPageStarted(view, […]