Location is accessed in Chrome, doesn't work in WebView Location is accessed in Chrome, doesn't work in WebView google-chrome google-chrome

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.