2012-02-24 68 views
0

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

在此先感谢。

+0

你为web浏览器启用了javascript吗? – Enigma 2012-02-24 07:01:59

回答

1

您应该为web视图启用javascript。

要做到这一点,

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

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

一件事是尝试以下内容添加到您的清单文件:

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

二是setJavaScriptEnabled(真)在你的网页视图。我只注意到有人在下面回答了这个问题

在这里阅读更多:http://developer.android.com/guide/topics/location/obtaining-user-location.html

2

做好以上仍然没有为我工作,但增加了一些额外的代码做了 - 看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必须是完全限定的className,在将其添加为导入后,它仍未被Eclipse IDE识别。