Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private String mGeolocationOrigin;
- private GeolocationPermissions.Callback mGeolocationCallback;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // other setup
- myWebView.setWebChromeClient(new MyWebChromeClient());
- }
- public class MyWebChromeClient extends WebChromeClient {
- @Override
- public void onGeolocationPermissionsShowPrompt(String origin,
- GeolocationPermissions.Callback callback) {
- // Geolocation permissions coming from this app's Manifest will only be valid for devices with API_VERSION < 23.
- // On API 23 and above, we must check for permission, and possibly ask for it.
- final String permission = Manifest.permission.ACCESS_FINE_LOCATION;
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M ||
- ContextCompat.checkSelfPermission(MainActivity.this, permission) == PackageManager.PERMISSION_GRANTED) {
- // we're on SDK < 23 OR user has already granted permission
- callback.invoke(origin, true, false);
- } else {
- if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permission)) {
- // user has denied this permission before and selected [/] DON'T ASK ME AGAIN
- // TODO Best Practice: show an AlertDialog explaining why the user could allow this permission, then ask again
- } else {
- // ask the user for permissions
- ActivityCompat.requestPermissions(MainActivity.this, new String[] {permission}, RP_ACCESS_LOCATION);
- mGeolocationOrigin = origin;
- mGeolocationCallback = callback;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement