12

How to get the url when the page changes, using CustomTabsClient?

For example WebView has a method:

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){}

I need a similar method for CustomTabs.

I have found this one:

mClient.newSession(new CustomTabsCallback(){
    @Override
    public void onNavigationEvent(int navigationEvent, Bundle extras) {
        super.onNavigationEvent(navigationEvent, extras);
    }

    @Override
    public void extraCallback(String callbackName, Bundle args) {
        super.extraCallback(callbackName, args);
    }
});

But I am not sure if this is the one I need.

Mattia Maestrini
  • 32,270
  • 15
  • 87
  • 94
Mikelis Kaneps
  • 4,576
  • 2
  • 34
  • 48

1 Answers1

19

How to get the url when the page changes, using CustomTabsClient?

Unfortunately you can't. There is also an open issue on the Chromium bug tracker:

https://code.google.com/p/chromium/issues/detail?id=543542

The only thing you can do now is to know when the tab has started or finished to loading the page, but you can't retrieve the URL:

mClient.newSession(new CustomTabsCallback(){
    @Override
    public void onNavigationEvent(int navigationEvent, Bundle extras) {
        Log.w(TAG, "onNavigationEvent: Code = " + navigationEvent);

        switch (navigationEvent) {
            case NAVIGATION_STARTED:
                // Sent when the tab has started loading a page.
                break;
            case NAVIGATION_FINISHED:
                // Sent when the tab has finished loading a page.
                break;
            case NAVIGATION_FAILED:
                // Sent when the tab couldn't finish loading due to a failure.
                break;
            case NAVIGATION_ABORTED:
                // Sent when loading was aborted by a user action before it finishes like clicking on a link
                // or refreshing the page.
                break;
        }
    }
});
Mattia Maestrini
  • 32,270
  • 15
  • 87
  • 94