Я работаю над запуском всплывающей ссылки (корзина покупок Amazon) из моего веб-представления, и у меня она работает так, что корзина загружается в веб-браузере, что было моим первоначальным намерением. Но я заинтересован в использовании пользовательских вкладок Chrome, чтобы сделать переход более плавным. Все примеры пользовательских вкладок Chrome, которые я видел, похоже, следуют приведенному ниже шаблону:
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build();
CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri,
new CustomTabActivityHelper.CustomTabFallback() {
@Override
public void openUri(Activity activity, Uri uri) {
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
Теперь мы достигли сути моей проблемы - я не уверен, как получить доступ к uri из метода onCreateWindow, где я буду запускать пользовательские вкладки Chrome. В настоящее время мой код выглядит следующим образом:
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture,
Message resultMsg) {
WebView wv = new WebView(getApplicationContext());
final WebSettings settings = wv.getSettings();
settings.setJavaScriptEnabled(true);
wv.setWebChromeClient(this);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(wv);
resultMsg.sendToTarget();
return true;
}
Я просмотрел несколько других сообщений, а именно Обработка URL-адреса из веб-представления onCreateWindow, но я не нашел большого успеха. Поэтому, если у кого-то есть какие-либо предложения о том, как получить URL-адрес в методе onCreateWindow или способ иного запуска пользовательских вкладок Chrome в этом случае, мы будем очень признательны.