谷歌地图没有在Android设备上的webview中显示

时间:2015-03-07 10:02:52

标签: android google-maps dictionary webview android-webview

我试图通过WebView渲染嵌入在网页中的谷歌地图。虽然它可以在模拟器上运行,但它不能在设备上运行(android 2.3.6和4.4.2)。以下是我的代码:

WebView webview = (WebView) findViewById(R.id.webView1);
webview.setWebViewClient(new WebViewClient());
webview.getSettings().setJavaScriptEnabled(true);

String url = "http://mywebsite.com/mobile_map.php";
webView.loadUrl(url);

enter image description here

  1. 我尝试了一个直接的网址,而不是我的网页,因为" https://www.google.co.in/maps/@20.3008841,85.7699553,12z?hl=en" 这也适用于AVD,但不适用于设备。

  2. 尝试实现AsysnkTask并处理ssl错误,如下所示:

    public class LoadSocialNetworkUrlTask extends AsyncTask<String, String, Void> { 
        protected void onPreExecute() {
            dialog = new ProgressDialog(MapActivity.this);
            dialog.setMessage("Loading,Please wait...");
            dialog.setIndeterminate(true);
            dialog.setCancelable(true);
            dialog.show();
        }
    
        protected void onProgressUpdate(final String... url) {
            try {
    
                ((WebView) webView).getSettings().setJavaScriptEnabled(true);
                ((WebView) webView).setBackgroundColor(Color.TRANSPARENT);  
                ((WebView) webView).setWebViewClient(new WebViewClient() {
                        @Override
                        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                            handler.proceed(); // Ignore SSL certificate errors
                        }
    
                        @Override
                        public void onPageFinished(WebView view, String url) {
                            // TODO hide your progress image
                            super.onPageFinished(view, url);
                            dialog.dismiss();
                        }
                    });
    
                ((WebView) webView).loadUrl(url[0]);
    
            } catch (Exception e) {
                e.printStackTrace();
                dialog.dismiss();
            }
    
        }
    
        @Override
        protected Void doInBackground(String... url) {
            try {
                publishProgress(url);
    
            } catch (Exception e) {
                e.printStackTrace();
                dialog.dismiss();
            }   
            return null;
        }
    }
    

    但结果相同。 我错过了什么?我们不应该在webview中显示包含地图的页面并直接使用api处理地图吗?我必须在设备中进行一些设置吗? (该设备已连接到互联网。)

0 个答案:

没有答案
相关问题