首页 > 解决方案 > 如何将 url 参数强制加载到 webview 中加载的所有 url?

问题描述

我将如何将 url 参数 ?theme=androidphone 应用于此 webview 加载的所有 url。我在我的 android 应用程序中包含了一段 webview 代码来考虑

webView = (WebView) findViewById(R.id.webview);
        webView.setWebViewClient(new Callback());
        webView.loadUrl("https://www.welcometomywebsite.com/?theme=androidphone");
        //webView.loadUrl("https://filebin.net/");
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAllowFileAccess(true);
        webSettings.setAllowContentAccess(true);
        webSettings.setAllowFileAccessFromFileURLs(true);
        webSettings.setAppCacheEnabled(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setLoadWithOverviewMode(true);


        if (Build.VERSION.SDK_INT >= 21) {
            webSettings.setMixedContentMode(0);
            webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
        } else if (Build.VERSION.SDK_INT >= 19) {
            webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
        } else {
            webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        }

标签: javaandroid

解决方案


将参数添加到所有 url

    @Override
    public boolean shouldOverrideUrlLoading(WebView webView, String url) {

        //appending parameter to whatever url loading in web view
        String newUrl = url + "?theme=androidphone"; 

        //passing modified url to web view
        webView.loadUrl(newUrl);
        return false;
    }

笔记:

当该shouldOverrideUrlLoading()方法返回 false 时,作为参数传递给该方法的 URL 将在 WebView 而不是 Android 标准浏览器中加载。

更新:

    webView = (WebView) findViewById(R.id.webview);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String url){

        //appending parameter to whatever url loading in web view
        String newUrl = url + "?theme=androidphone"; 

        //passing modified url to web view
        webView.loadUrl(newUrl);
        return false;
        }
    });

    /*webView settings can be defined here*/

    webView.loadUrl("https://www.welcometomywebsite.com/");

推荐阅读