【问题标题】:Android webview location detect javascriptAndroid webview位置检测javascript
【发布时间】:2012-11-29 23:58:23
【问题描述】:

我有一个网页,在网页浏览器中成功检测到位置。并根据位置过滤掉我的结果。我在 android 应用程序的 webview 中运行相同的网站 url。但在 android 应用程序中,位置检测 javascript 不起作用。有什么建议在这里做什么?

提前致谢。

【问题讨论】:

  • 您是否为 webview 启用了 javascript?

标签: javascript android webview location


【解决方案1】:

执行上述操作对我仍然不起作用,但添加一些额外的代码确实 - 请参阅Android Webview Geolocation

我将以下内容添加到我的 webview 对象中

    // enable geolocationEnabled
    webview.getSettings().setGeolocationEnabled(true);

    // enable JavaScriptCanOpenWindowsAutomatically, not sure if this is needed
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

    // set setWebChromeClient
    webview.setWebChromeClient(new WebChromeClient() {
        public void onGeolocationPermissionsShowPrompt(String origin, android.webkit.GeolocationPermissions.Callback callback) {
            callback.invoke(origin, true, false);
        }
    });

由于某种原因,android.webkit.GeolocationPermissions.Callback 必须是完全限定的类名,在将其添加为导入后,Eclipse IDE 仍然无法识别它。

【讨论】:

    【解决方案2】:

    您应该为 webview 启用 javascript。

    为此,

    wv = (WebView) findViewById(R.id.web_view);
    wv.getSettings().setJavascriptEnabled(true);
    

    【讨论】:

      【解决方案3】:

      只有一个问题:位置检测JS是否在Android浏览器中工作(而不是在Android WebView中)?

      尝试将以下内容添加到清单文件中:

      <manifest ... >
          <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
          ...
      </manifest>
      

      第二个是在你的 webview 中设置 JavaScriptEnabled(true)。我刚刚注意到有人在下面回答了这个问题。

      在此处阅读更多信息:http://developer.android.com/guide/topics/location/obtaining-user-location.html

      【讨论】:

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