使用webview.loadUrl()时,我可以在html中获取url参数吗?

时间:2016-07-13 09:00:56

标签: javascript android html webview

这是我的代码:

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中不起作用。

2 个答案:

答案 0 :(得分:0)

您可以在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+")");
            }
        }); 

答案 1 :(得分:0)

我找到了我的问题的答案,就是使用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”)。