我有一个Android活动,其片段专用于多个webview。
我已经实现了多种webview方法,包括
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
// source code here ...
}
对于第一个webview,shouldOverrideUrlLoading(..)被调用OK。
但是当我按照一些链接创建一个新的webview时, 设置与第一个相同, 分配新的webViewClient和新的webChromeClient。
新的webViewClient覆盖函数,如onPageStart(..),onPageFinished(..)将调用ok,
但是只有在新的webview上没有调用onOverrideUrlLoading(),尽管它有一个全新的webViewClient实例。
我检查了两个webViewClient的实例ID,并确认每个webview都有不同的实例ID(这很好,因为这意味着两个webview实际上都有不同的webViewClients实例)
我不知道为什么新的webViewClient实例不会触发shouldOverrideUrlLoading()函数。
任何人都可以帮助我吗? :(
谢谢!
答案 0 :(得分:1)
有一个类似的情况。 在您的Web客户端中,您可以实现以下功能:
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
WebResourceResponse response = super.shouldInterceptRequest(view, request);
return response;
}
你可以在中间设置一个断点,看看发生了什么。
我的问题是请求方法是POST ,并且没有触发shouldOverrideUrlLoading
,因此确保您的请求方法是GET。