Android WebView 无法打开特定网页 – 浏览器不受支持,请使用 Chrome。

huangapple 未分类评论43阅读模式
英文:

Android WebView not able to open certain webpages - Browser not supported use chrome

问题

public class MainActivity extends AppCompatActivity {

    final static String myAddr = "https://partners-pwa.whizdm.com/apply-loan/login";
    String ua = "Mozilla/5.0 (Linux; Android 10.0.99) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.9 Mobile Safari/537.36";

    Button b1;

    private WebView mContentView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mContentView = findViewById(R.id.webView);
        mContentView.getSettings().setJavaScriptEnabled(true);
        mContentView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mContentView.getSettings().setLoadWithOverviewMode(true);
        mContentView.getSettings().setUseWideViewPort(true);
        mContentView.getSettings().setAllowFileAccess(true);
        mContentView.getSettings().setPluginState(WebSettings.PluginState.ON);
        mContentView.getSettings().setDomStorageEnabled(true);
        mContentView.getSettings().setAllowContentAccess(true);
        mContentView.getSettings().setAllowFileAccessFromFileURLs(true);
        mContentView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mContentView.getSettings().setAllowFileAccess(true);
        mContentView.getSettings().setAllowContentAccess(true);
        mContentView.getSettings().setUserAgentString(ua);

        String url = "";
        enableWebViewSettings();
        try {
            url = URLDecoder.decode(myAddr, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        mContentView.loadUrl(url);
    }

    private void enableWebViewSettings() {

        if (Build.VERSION.SDK_INT >= 21) {
            mContentView.getSettings().setMixedContentMode(0);
            mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
            CookieManager.getInstance().setAcceptThirdPartyCookies(mContentView, true);
        } else if (Build.VERSION.SDK_INT >= 19) {
            mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
            CookieManager.getInstance().setAcceptCookie(true);
        } else {
            mContentView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
            CookieManager.getInstance().setAcceptCookie(true);
        }

        mContentView.getSettings().setDomStorageEnabled(true);
        mContentView.getSettings().setAllowFileAccess(true);
        mContentView.clearCache(true);
        mContentView.clearHistory();
        mContentView.getSettings().setSupportMultipleWindows(true);
        mContentView.getSettings().setJavaScriptEnabled(true);
        mContentView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mContentView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                view.getSettings().setUserAgentString(ua);
                return true;
            }
        });
        mContentView.setWebChromeClient(new WebChromeClient() {
        });

        mContentView.getSettings().setUserAgentString(ua);
    }
}
英文:

I'm trying to open this webpage in Android WebView
https://partners-pwa.whizdm.com/apply-loan/loginbut, it is showing that the browser is not supported. The URL opens up in chrome app and this message is not there anyway. So far, I have tried changing the WebView user-agent to Mozilla/5.0 (Linux; Android 10.0.99) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.9 Mobile Safari/537.36 but, no luck.

This is my main activity

public class MainActivity extends AppCompatActivity {


    final static String myAddr = "https://partners-pwa.whizdm.com/apply-loan/login" ;
            String ua = "Mozilla/5.0 (Linux; Android 10.0.99) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.9 Mobile Safari/537.36";

    Button b1;


    private WebView mContentView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mContentView = findViewById(R.id.webView);
        mContentView.getSettings().setJavaScriptEnabled(true);
        mContentView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mContentView.getSettings().setLoadWithOverviewMode(true);
        mContentView.getSettings().setUseWideViewPort(true);
        mContentView.getSettings().setAllowFileAccess(true);
        mContentView.getSettings().setPluginState(WebSettings.PluginState.ON);
        mContentView.getSettings().setDomStorageEnabled(true);
        mContentView.getSettings().setAllowContentAccess(true);
        mContentView.getSettings().setAllowFileAccessFromFileURLs(true);
        mContentView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mContentView.getSettings().setAllowFileAccess(true);
        mContentView.getSettings().setAllowContentAccess(true);
        mContentView.getSettings().setUserAgentString(ua);

        String url="";
        enableWebViewSettings();
        try {
            url = URLDecoder.decode(myAddr, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }




        mContentView.loadUrl(url);
    }

    private void enableWebViewSettings() {

        if (Build.VERSION.SDK_INT >= 21) {
            mContentView.getSettings().setMixedContentMode(0);
            mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
            CookieManager.getInstance().setAcceptThirdPartyCookies(mContentView, true);
        } else if (Build.VERSION.SDK_INT >= 19) {
            mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
            CookieManager.getInstance().setAcceptCookie(true);
        } else {
            mContentView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
            CookieManager.getInstance().setAcceptCookie(true);
        }

        mContentView.getSettings().setDomStorageEnabled(true);
        mContentView.getSettings().setAllowFileAccess(true);
        mContentView.clearCache(true);
        mContentView.clearHistory();
        mContentView.getSettings().setSupportMultipleWindows(true);
        mContentView.getSettings().setJavaScriptEnabled(true);
        mContentView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mContentView.setWebViewClient( new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url){
                view.loadUrl(url);
                view.getSettings().setUserAgentString(ua);
                return true;
            }

        });
        mContentView.setWebChromeClient(new WebChromeClient() {

        });

        mContentView.getSettings().setUserAgentString(ua);


    }

How can I see the contents of that page? Any help is appreciated.

huangapple
  • 本文由 发表于 2020年4月10日 14:22:13
  • 转载请务必保留本文链接:https://java.coder-hub.com/61135025.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定