今天手上项目接手一个新需求
需要在webview点击的时候,根据url信息决定是webview页内跳转,还是跳转到原生页面中
在webclient中可以拦截webview的请求事件
mWebViewClient = object : WebViewClient() {
//已被遗弃的方法,我测试中没有发生调用
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
return super.shouldOverrideUrlLoading(view, url)
}
//返回true则会完全拦事件,webview将不会发生页内跳转
override fun shouldOverrideUrlLoading(
view: WebView?,
request: WebResourceRequest?
): Boolean {
return super.shouldOverrideUrlLoading(view, request)
}
}
以下是简单的解析url的方法
//获取所有的键值对
url.getQuery
//获取checkout的键值对键值
url.getQueryParameter("checkout)
//转义Url中的特殊字符
url = URLDecoder.decode(url.toString(), "UTF-8")