【问题标题】:WebView shows blank screen the second time?WebView 第二次显示黑屏?
【发布时间】:2017-08-10 05:28:52
【问题描述】:

我目前正在开发一个应用程序,该应用程序在 Android WebView 中以桌面模式加载 https://web.whatsapp.com/whatsapp for web。 它在棒棒糖版本上运行良好,但高于 API 23 及更高版本(棉花糖及更高版本)应用程序仅加载网站一次,如果按下重新加载按钮,它只会显示一个空白屏幕!

这是在 android API 级别 21 上运行良好但不高于它的代码,请帮忙!!

public class Main_web_view_frag extends android.support.v4.app.Fragment
{

 public WebView Assignment_webView;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View slide_view = inflater.inflate(R.layout.assignment_main_webview, container, false);

        Assignment_webView = (WebView)slide_view.findViewById(R.id.webView);

        Assignment_webView.getSettings().setJavaScriptEnabled(true);
        Assignment_webView.setWebViewClient(new My_web_Browser());
        Assignment_webView.loadUrl("https://web.whatsapp.com/");
        setDesktopMode(true);

        return slide_view;
    }


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

    public void setDesktopMode(final boolean enabled)
    {
        final WebSettings Assignment_webSettings = Assignment_webView.getSettings();

         String new_Assign_UserAgent;

        if (enabled)
        {
            new_Assign_UserAgent = Assignment_webSettings.getUserAgentString().replace("Mobile", "eliboM").replace("Android", "diordnA");
        }
        else
        {
            new_Assign_UserAgent = Assignment_webSettings.getUserAgentString().replace("eliboM", "Mobile").replace("diordnA", "Android");
        }


        Assignment_webSettings.getJavaScriptEnabled();
        Assignment_webSettings.setUserAgentString(new_Assign_UserAgent);

        Assignment_webSettings.setUseWideViewPort(true);
        Assignment_webSettings.setLoadWithOverviewMode(true);
        Assignment_webSettings.setSupportZoom(enabled);
        Assignment_webSettings.setBuiltInZoomControls(true);
        Assignment_webSettings.getJavaScriptCanOpenWindowsAutomatically();
        Assignment_webSettings.setDisplayZoomControls(false);

        Assignment_webSettings.setDatabaseEnabled(true);
        Assignment_webSettings.setDomStorageEnabled(true);
        Assignment_webSettings.setAllowFileAccess(true);
        Assignment_webSettings.setAppCacheEnabled(true);

        Assignment_webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        Assignment_webSettings.setAppCachePath(getActivity().getApplicationContext().getCacheDir().getPath());


        String appCachePath = getActivity().getCacheDir().getAbsolutePath();
        Assignment_webSettings.setAppCachePath(appCachePath);
    }


}

【问题讨论】:

  • 嗨..你解决了这个问题吗?
  • 你能帮忙解决一下吗?

标签: java android android-fragments webview android-webview


【解决方案1】:

终于有办法了!!你只需要在你的 webview 中添加一个 useragent 字符串,就可以像 chrome 或任何其他 web 浏览器一样工作。

yourWebView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2015-01-08
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2011-10-18
    相关资源
    最近更新 更多