android - WebView.getUrl() 返回 null

标签 android webview geturl

我对 Webview 有疑问。我正在编写我自己的 WebChromeClient 类来覆盖 onProgressChanged 方法,因为我想在页面完成加载时显示它,然后隐藏启动画面。因为我只希望它发生在特定的 URL 上,所以我将实际的 WebView URL 与特定的字符串进行比较,但是有一个问题,当 webview.getUrl() 方法被调用时,我得到一个空指针我的申请完成了。

这是代码:

private class MyWebChromeClient extends WebChromeClient {
    @Override
    public void onProgressChanged (WebView webview, int newProgress) {
        super.onProgressChanged(webview,newProgress);
        if(webview.equals(w1) && newProgress == 100 && webview.getUrl().startsWith("https://ssl.facebook.com/login.php")) { 
            webview.setVisibility(WebView.VISIBLE);
            ImageView imageview = (ImageView)findViewById(R.id.ivsplash);
            imageview.setVisibility(ImageView.GONE);
            ProgressBar progressbar = (ProgressBar)findViewById(R.id.pbsplash);
            progressbar.setVisibility(ProgressBar.GONE);
        }
    }
}

我这样做是为了避免 webview 需要三或四秒来呈现页面,但它不起作用。我之前使用的代码是:

private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView webview, String url) {
        super.shouldOverrideUrlLoading(webview, url);
        webview.loadUrl(url);
        return true;
    }
    
    @Override
    public void onPageFinished(WebView webview, String url) {
        if(url.startsWith("https://ssl.facebook.com/login.php")) {
            webview.setVisibility(WebView.VISIBLE);
            ImageView imageview = (ImageView)findViewById(R.id.ivsplash);
            imageview.setVisibility(ImageView.GONE);
            ProgressBar progressbar = (ProgressBar)findViewById(R.id.pbsplash);
            progressbar.setVisibility(ProgressBar.GONE);
        }
    }
}

最佳答案

不确定 WebChromeClient 是否可行,但我可以使用

WebViewClient 和重载 onLoadResourceonReceivedErroronPageFinished

这是我做的

onLoadResource     
 mwebview.setVisibility(View.GONE);


onReceivedError
mwebview.setVisibility(View.VISIBLE);

onPageFinished
mwebview.setVisibility(View.VISIBLE);

最初在 XML 中,webview 被设置为 GONE

android:visibility="gone"

我也在 Facebook 上使用它并且工作正常。

关于android - WebView.getUrl() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179212/

相关文章:

android - 防止 Android 屏幕在 Activity 运行时变暗

javascript - 有没有办法在 android webview 应用程序中使用表情符号?

google-apps-script - 复制文件后获取文档的 URL/ID

iphone - 蓝牙跨平台 android, iphone, Blackberry, Symbian, WinMo

android - Gradle 在下载 NDK 时卡住了

java - 如何访问SD卡上的特定原始数据?

android 从 WebView 关闭当前 Activity

android - Android 应用程序中静态 html 中的自定义字体

javascript - 获取传递的 URL 参数并添加到 iframe URL