【问题标题】:Can't Show Google Map in Android WebView无法在 Android WebView 中显示谷歌地图
【发布时间】:2016-08-03 03:09:48
【问题描述】:

我有一个aspx页面,已经集成了google map api并且可以显示google map,然后我想在android webview中显示,但是webview不能显示google map。 这个aspx页面可以在android浏览器中完美运行。

这里是 Logcat 打印:

I / chromium: [INFO: CONSOLE (210)] "Google Maps API 警告:NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys",来源:http://maps.google.com/maps-api-v3/api/js/25 /11/util.js (210)

I / chromium: [INFO: CONSOLE (210)] "Google Maps API 警告:SensorNotRequired https://developers.google.com/maps/documentation/javascript/error-messages#sensor-not-required",来源:http://maps.google.com/maps-api-v3/api/js/25 /11/util.js (210)

这里是设置webview的代码:

webView.getSettings().setJavaScriptEnabled(true);//
        webView.getSettings().setGeolocationEnabled(true);//
        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setDomStorageEnabled(true);//
        webView.getSettings().setDatabaseEnabled(true);//
        webView.getSettings().setPluginState(WebSettings.PluginState.ON);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
        webView.getSettings().setBlockNetworkImage(false);
        webView.getSettings().setBlockNetworkLoads(false);
        String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
        webView.getSettings().setGeolocationDatabasePath(dir);

【问题讨论】:

  • 我也面临同样的问题,如果你有任何解决方案,请告诉我。

标签: android google-maps webview


【解决方案1】:

在后面加上这一行

webView.getSettings().setJavaScriptEnabled(true);//

webview.setWebViewClient(new WebViewClient());

【讨论】:

    【解决方案2】:

    根据您的代码,我找不到加载给定URLloadUrl

    兼容性说明。针对N 或更高版本的应用程序,来自空WebView 的JavaScript 状态不再在loadUrl 等导航中保持不变。例如,调用 loadUrl(String) 之前定义的全局变量和函数将不会存在于加载的页面中。应用程序应该使用 [addJavascriptInterface(Object, String)](https://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object, java.lang.String)) 来跨导航保存 JavaScript 对象。

    要在你自己的Activity中提供一个WebView,在你的布局中包含一个,或者在onCreate()期间将整个Activity窗口设置为一个WebView:

    WebView webview = new WebView(this);
    setContentView(webview);
    

    然后加载所需的网页:

    webview.loadUrl("http://slashdot.org/");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多