使用WebChromeClient的Chrome自定义标签&onCreateWindow方法 - 如何在onCreateWindow中获取网址

时间:2016-07-06 19:12:17

标签: android google-chrome android-webview webchromeclient

我正在努力从我的webView中启动弹出链接(亚马逊购物车),我让它工作,以便在Web浏览器中加载购物车,这是我的初衷。但是,我对使用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;
            }

我已经查看了其他一些帖子,即Handle url from onCreateWindow web view,但我还没有取得多大成功。因此,如果有人对如何在onCreateWindow方法中获取网址有任何建议,或者在这种情况下以其他方式启动Chrome自定义标签,那么我们将非常感激

0 个答案:

没有答案