这是我的代码:
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中不起作用。
答案 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”)。