2013-05-14 3 views
1

현재로드를 webview에로드 된 URL에 요청 변수로 추가하여 리로드 또는 추가 요청없이이 정보를 페이지에서 사용할 수 있습니다.로드가 시작되기 전에 웹보기가 도착하는 URL을 조작하십시오.

shouldOverrideUrlLoading이있는 WebviewClient가 있지만 loadUrl을 사용하여 전달 된 요청을받지 못합니다. shouldInterceptRequest를 사용하여 요청 된 URL을 인터셉트하는 것은 가능하지만 API 레벨 8을 사용하고 있으며 이것을 위해서만 이것을 변경하고 싶지는 않습니다.

URL이 웹보기에 의해로드되기 전에이를 조작 할 수있는 방법이 있습니까?

답변

1

예, loadUrl을 호출하기 전에 Url을 변경하십시오. 당신은 아마, 그런 다음 다시 ... webviewclient에서만 사용할 수를 Url을 수정 한 함수를 생성하고 loadUrl을 위해 전화 및 shouldOverrideUrlLoading

public Url addLocationToUrl(Url url) { 
    Url newUrl = url; 
    //do something with url 
    return newUrl; 
} 

loadUrl(addLocationToUrl(someUrl)); 

//and in your WebViewClient 
@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    mWebView.loadUrl(addLocationToUrl(someUrl)); 
    return true; 
} 
+0

에 나는이 생각 않았지만, 내가 (이 시점에서) 위치를 가질 수 있습니다 이것은 내 코드를 리팩토링하는 것에 대한 나의 단서이다. – MidnightMotion

+0

리팩토링으로 인해 좋은 솔루션 일뿐만 아니라 내 코드가 나아 졌기 때문에 답변을 수락했다. – MidnightMotion

관련 문제