Location is accessed in Chrome, doesn't work in WebView
You have to import android.webkit.GeolocationPermissions.Callback
and android.webkit.WebChromeClient
just to Set the Geolocation permission state for the supplied origin by calling callback.invoke(origin, true, false);
in onGeolocationPermissionsShowPrompt
method of WebChromeClient
like below
Code
mWebView = (WebView) findViewById(R.id.mywebview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webSettings.setJavaScriptEnabled(true); webSettings.setGeolocationEnabled(true); mWebView.setWebChromeClient(new WebChromeClient(){ @Override public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) { callback.invoke(origin, true, false); } }); mWebView.loadUrl("http://www.google.com");
and you have to add 2 manifest permission's as
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Hope it works.