shouldOverrideUrlLoading(WebView view, String url)


webviewClient.java 에 shouldOverrideUrlLoading 이라는 function 이 있다.

이 함수는 페이지 이동시 등등에 항상 불린다..


좀 자세히 보자..




1. bool WebFrame::canHandleRequest(const WebCore::ResourceRequest& request) {

    jboolean ret = env->CallBooleanMethod(mJavaFrame->frame(env).get(), mJavaFrame->mHandleUrl, jUrlStr);
}
: webkit core 에서 호출함.

==>

2. public boolean handleUrl(String url) {
        if (mCallbackProxy.shouldOverrideUrlLoading(url)) {
}

==>

3.     public boolean shouldOverrideUrlLoading(String url) {
        Message msg = obtainMessage(OVERRIDE_URL);
        msg.getData().putString("url", url);
        msg.obj = res;
        synchronized (this) {
            sendMessage(msg);
}

==>

4. handleMessage

            case OVERRIDE_URL:
                String overrideUrl = msg.getData().getString("url");
                boolean override = uiOverrideUrlLoading(overrideUrl);

==>

5.     public boolean uiOverrideUrlLoading(String overrideUrl) {

            override = mWebViewClient.shouldOverrideUrlLoading(mWebView,
                    overrideUrl);
}

==>

결국 browseractivity.java 의 shouldOverrideUrlLoading 이 호출된다..

return false 이면 google browser 가 처리하고 return true 이면 다른 app 가 처리한다..















by 수영사랑 | 2010/09/07 11:58 | Browser Application 관련 | 트랙백 | 덧글(1)

트랙백 주소 : http://skyswim42.egloos.com/tb/3835420
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented at 2014/07/09 15:29
비공개 덧글입니다.

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶