相关疑难解决方法(0)

如何监听WebView完成加载URL?

我有一个WebView从Internet上加载页面.我想显示一个ProgressBar直到加载完成.

我如何监听完成页面加载WebView

android android-webview

422
推荐指数
10
解决办法
31万
查看次数

WebViewClient不调用shouldOverrideUrlLoading

问题很简单.在应用程序中,我们希望跟踪显示的当前URL.为此,我们使用shouldOverrideUrlLoading回调来WebViewClient保存url到每个更新的类字段.这是相关代码:

    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setDomStorageEnabled(true); 
    mWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            mCurrentUrl = url;

            // If we don't return false then any redirect (like redirecting to the mobile
            // version of the page) or any link click will open the web browser (like an
            // implicit intent).
            return false;
        }



        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            ...
        }
    });
    mWebView.loadUrl(mInitialUrl);
Run Code Online (Sandbox Code Playgroud)

但是,至少有一种情况,即回调永远不会被触发,并且mCurrentUrl字段不会更新.

网址:https://m.pandora.net/es-es/products/bracelets/556000

上次更新的URL(在单击产品时永远不会调用shouldOverrideUrlLoading):https://m.pandora.net/es-es/products/bracelets

我尝试过像onPageStarted()这样的回调,但是url也被过滤了,因为它的受保护代码似乎没有可访问的上游. …

android webview android-webview

15
推荐指数
7
解决办法
2万
查看次数

XML启动画面 - >显示Webview

谢谢你试图解决我的问题!

目前我的应用程序基本上使用Android Web视图加载网页.缺点是有时(连接不良)网页需要10秒以上才能加载.有没有办法在网页加载时创建某种启动XML"加载"屏幕?

看看我的代码......

package com.ect;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.CookieSyncManager;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class SomeActivity extends Activity {

    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //THIS IS WHAT I WANT: setContentView(R.layout.main);

        CookieSyncManager.createInstance(getBaseContext());

        // Let's display the progress in the activity title bar, like the
        // browser app does.


        getWindow().requestFeature(Window.FEATURE_PROGRESS);

        WebView webview = new WebView(this);
        setContentView(webview);


        webview.getSettings().setJavaScriptEnabled(true);

        final Activity activity = this; …
Run Code Online (Sandbox Code Playgroud)

xml cookies android webview

5
推荐指数
1
解决办法
1544
查看次数

如何检查URL是否在webview中加载

我正在使用下面的代码在android webview中加载url

webviewShowPost.loadUrl(URL);
Run Code Online (Sandbox Code Playgroud)

我想检查是否没有可用的数据连接,然后webview而不是显示空白视图,我可以显示没有连接的Toast.

谢谢

url android connectivity webview

3
推荐指数
1
解决办法
1万
查看次数

如何检测Android WebView何时加载页面?

我有一个应用程序,它显示启动页面并在 WebView 中加载 URL 时删除该启动页面。以下是我们用来移除启动页面的相关代码:

browser.setWebViewClient(new BrowserClient() {
 @Override
 public void onPageFinished(WebView view, String url) {
  super.onPageFinished(view, url);
  // Work around for WebView onPageFinished called twice                
  if (flag == true) {
   browser.setVisibility(View.VISIBLE);
   splashImage.setVisibility(View.INVISIBLE);
   pageLoader.setVisibility(View.INVISIBLE);
  } else {
   flag = true;
  }
 }
});
Run Code Online (Sandbox Code Playgroud)

这段代码有效......除了它很慢。在网页加载很久之后,启动页面需要很长时间才能删除。

是否有任何关于如何可靠地检测 WebView 何时加载页面的提示?过去几天我一直在研究这个,我似乎无法想出任何可靠的东西。

我看到的最有希望的是以下内容,但将此代码放在 Android 控制台中会引发错误:

@Override
public void invalidate() {
 super.invalidate();

 if (getContentHeight() > 0) {
  // WebView has displayed some content and is scrollable.
 }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑:有很多答案提出 onPageFinished,甚至有人将其标记为重复,并带有指向使用 onPageFinished 的解决方案的链接。伙计们,我们已经在使用 onPageFinished …

android webview

2
推荐指数
1
解决办法
5716
查看次数

标签 统计

android ×5

webview ×4

android-webview ×2

connectivity ×1

cookies ×1

url ×1

xml ×1