首页 文章

WebView链接无法打开

提问于
浏览
2

我正在尝试使用Android中的Webview打开链接 . WebView中嵌入了一些链接 . 我的问题是webview没有打开任何不以www开头的链接 . 例如,www.google.com正在运行,但maps.google.com不是 . 我也尝试覆盖WebViewClient但它不起作用 . 我注意到的一件事是通过Toast来查看WebViewClient中调用的url . 它对www.google.com显示完美,但没有为其他链接返回任何内容 . 在这种情况下,我没有得到覆盖WebViewClient . 可能是什么原因 . 我是否需要调用webview的任何方法或属性 . 任何帮助将不胜感激 .

menuView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            super.shouldOverrideUrlLoading(view, url);
            Toast.makeText(getApplicationContext(), "url:--" + url, Toast.LENGTH_LONG).show();          
            view.loadUrl(url);
            return false;
    }

    });

我已经设置的属性是:

menuView.setVerticalScrollBarEnabled(假);

menuView.setHorizontalScrollBarEnabled(false);

    final WebSettings webSettings = menuView.getSettings();
    menuView.getSettings().setJavaScriptEnabled(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webSettings.setSupportMultipleWindows(true);

    webSettings.setPluginState(PluginState.ON);
    webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

    menuView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    menuView.getSettings().setBuiltInZoomControls(true);
    // Below required for geolocation
    menuView.getSettings().setJavaScriptEnabled(true);
    menuView.getSettings().setGeolocationEnabled(true);

    webSettings.setGeolocationEnabled(true);

    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

1 回答

  • 2
    // in oncreate 
    webview.setWebChromeClient(new wecrome());
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setLoadsImagesAutomatically(true);
    webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    webview.setWebViewClient(new MyBrowser());
    webview.getSettings().setPluginState(PluginState.ON);
    webview.loadUrl("http://www.example.net/locations/");
    
    //inner class 
    private class MyBrowser extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                view.addJavascriptInterface(new Object() {
                    @JavascriptInterface
                    public void performClick() throws Exception {
                        Log.d("LOGIN::", "Clicked");
                        Toast.makeText(googleplus.this, "Login clicked",
                                Toast.LENGTH_LONG).show();
                    }
                }, "login");
                return true;
            }
    
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
    
                System.out.println("started");
                pd.show();
                super.onPageStarted(view, url, favicon);
    
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                // TODO Auto-generated method stub
                pd.dismiss();
                System.out.println("ends");
                super.onPageFinished(view, url);
    
            }
    
        }
    

相关问题