前言
在开发webview 有时候需要控制url的跳转,所以需要获取url 参数进行判断
比如 http://192.168.0.37:8012/mobileAPP/payment.aspx?oId=M1684&factprice=12.01&paymenttype=1
这样的一个url 我想获取paymenttype参数的值 ,解决的办法就是写一个工具类
代码如下
/***
* 获取url 指定name的value;
* @param url
* @param name
* @return
*/
public static String getValueByName(String url, String name) {
String result = "";
int index = url.indexOf("?");
String temp = url.substring(index + 1);
String[] keyValue = temp.split("&");
for (String str : keyValue) {
if (str.contains(name)) {
result = str.replace(name + "=", "");
break;
}
}
return result;
}
调用示例
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("/mobileAPP/payment.aspx?")) {
String type = UrlUtils.getValueByName(url, "paymenttype");
//微信支付
if (type.equals("1")) {
Intent intent = new Intent(context, PayActivity.class);
context.startActivity(intent);
}
//支付宝支付
else {
Intent intent = new Intent(context, PayDemoActivity.class);
context.startActivity(intent);
}
}
else {
view.loadUrl(url);
}
return true;
}