我正在努力从我的 webView 中启动一个弹出链接(亚马逊购物车),并且我让它工作,以便购物车加载到网络浏览器中,这是我的初衷。但是,我有兴趣使用 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);
}
});
现在我们已经解决了问题的症结所在——我不确定如何从 onCreateWindow 方法访问 uri,我将在该方法中启动 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;
}
我查看了其他一些帖子,即来自 onCreateWindow web view 的 Handle url,但我没有发现太多成功。因此,如果有人对如何在 onCreateWindow 方法中获取 url 或在这种情况下以其他方式启动 Chrome 自定义选项卡有任何建议,我们将不胜感激