【问题标题】:can't open twitter url in android webview无法在 android webview 中打开 twitter url
【发布时间】:2011-10-23 04:53:29
【问题描述】:

我的 ANDROID 应用程序有问题。

我想在我的 web 视图中显示一个 twitter 页面,但 URL 打不开。

它会无限加载。

我正在使用 sdk 1.6。

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setLoadsImagesAutomatically(true);
    webView.setBackgroundColor(0x00000000);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

    final Activity activity = this;
    webView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress) {
            activity.setProgress(progress * 100);
            Log.e("progress",progress+" "+((progress * 100)));
            if(progress==100)
            {
                //getWindow().setFeatureInt(Window.FEATURE_PROGRESS,Window.PROGRESS_VISIBILITY_OFF);
                indicator.setVisibility(View.GONE);
            }
            else
            {
                indicator.setVisibility(View.VISIBLE);
            }
        }
    });

    webView.getSettings().setUseWideViewPort(true);
    webView.setWebViewClient(new ApplicationWebViewClient());
}

    private class ApplicationWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    {
        view.loadUrl(url);
        return super.shouldOverrideUrlLoading(view, url);
    }

【问题讨论】:

  • 你确定网址正确吗?
  • 是的......网址是正确的,并且有一个在android webview上无限加载的移动twitter页面......但是当我使用浏览器时它可以完美运行!

标签: android url twitter webview loading


【解决方案1】:

您的问题是您的 shouldOverrideUrlLoading 需要返回 true 以指示主机应用程序正在管理负载:

private class ApplicationWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    {
        view.loadUrl(url);
        return true;
    }
}

【讨论】:

  • 我做了这个改变,但同样的问题......移动推特页面的加载轮停止了一段时间,但之后继续动画......但是当推特加载轮停止时在浏览器中一段时间后页面被重定向到特定的url
  • 你在某处打电话给webview.loadUrl(),不是吗?你已经在你的 Manifest 中设置了<uses-permission android:name="android.permission.INTERNET"/>?
【解决方案2】:

我必须在 webview 上设置用户代理字符串才能让它工作。

wv.getSettings().setUserAgentString("silly_that_i_have_to_do_this");

这对我有用。

希望对其他人有所帮助!

【讨论】:

  • 奇怪...刚刚在我的一个网站日志中注意到访问者的用户代理是“silly_that_i_have_to_do_this”.....
  • 我认为“QR Reader for Android”应用程序全面使用了这个用户代理:[查看评论:androlib.com/…]
【解决方案3】:
wv.getSettings().setDomStorageEnabled(true);

这对我有用!

【讨论】:

  • 添加了这个,但在使用 webview 客户端时不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
相关资源
最近更新 更多