【问题标题】:Can I get the url parameters in html when I use webview.loadUrl()?使用 webview.loadUrl() 时能否获取 html 中的 url 参数?
【发布时间】:2016-07-13 09:00:56
【问题描述】:

这是我的代码:

private WebView mWebView;
String testValue="hello";
mWebView.loadUrl("http://192.168.64.13:8079/ctms-logistics/demo.html?test="+testValue);

我想从包含在demo.html中的demo.js中的url获取参数“test”的值(即变量testValue的值),如何?我知道在浏览器中我们可以使用 window.location.hash 来获取 url,但它在 webview 中不起作用。

【问题讨论】:

    标签: javascript android html webview


    【解决方案1】:

    你可以在你的 js 中拥有接受这些参数的函数。并从活动中调用该函数,如下所示

    mWebView.loadUrl("http://192.168.64.13:8079/ctms-logistics/demo.html?test="+testValue);
         mWebView.setWebViewClient(new WebViewClient() {
    
                public void onPageFinished(WebView view, String url)
                {
                       mWebView.loadUrl("javascript:setTestValue("+testValue+")");
                }
            }); 
    

    【讨论】:

    • 这个方法我也想出来了,但我认为它是一种替代方法。我找到了我的问题的答案,就是使用window.location.href从webview.loadUrl中获取url,然后解析该url得到我想要的参数。
    【解决方案2】:

    我找到了我的问题的答案,就是使用 window.location.href 从 webview.loadUrl 中获取 url,然后解析该 url 以获取我想要的参数。是这样的:

    function getParamHref(paramName) {
    var href = window.location.href;
    var search = href.substr(href.indexOf("?") + 1, href.length);
    var reg = new RegExp("(^|&)" + paramName + "=([^&]*)(&|$)", "i");
    var r = search.match(reg);
    if (!isUndeFinedOrNull(r)) return unescape(r[2]);
    return null;
    

    }

    如果我想从 url 中获取参数“test”,那么我可以在 demo.js 文件的开头调用方法 getParamHref(“test”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 2019-03-17
      • 2011-12-11
      • 1970-01-01
      • 2022-01-07
      • 2015-04-11
      相关资源
      最近更新 更多