2015-10-26 2 views
4

Как получить URL-адрес при изменении страницы, используя CustomTabsClient?Как получить изменение Url из CustomTabsClient

Например WebView имеет метод:

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

мне нужен подобный метод для CustomTabs.

Я нашел это:

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); 
    } 
}); 

Но я не уверен, если это одна мне нужна.

ответ

10

Как получить URL-адрес при изменении страницы, используя CustomTabsClient?

К сожалению, вы не можете. Существует также открытый вопрос о Chromium багтрекер:

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

Единственное, что вы можете сделать сейчас, чтобы знать, когда закладка началась или закончилась для загрузки страницы, но вы не можете извлечь 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; 
     } 
    } 
}); 
+0

Кто-нибудь получил onNavigationEvent, чтобы на самом деле получить вызов? Я попытался настроить это несколько раз, но он, кажется, не вызван, и я проверил, что он установлен в вызове .newSession(): -P – kenyee

+4

@kenyee Создал ли ваш хром намерение, передав в сеанс, возвращенный с #newSession() ? новый CustomTabsIntent.Builder (сеанс); – sfreeman

+0

Это было @sfreeman ... большое спасибо :-) Они должны просто потребовать, чтобы строитель взял сеанс для параметра. – kenyee

Смежные вопросы