Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. private String mGeolocationOrigin;
  2. private GeolocationPermissions.Callback mGeolocationCallback;
  3.  
  4. @Override
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8.  
  9. // other setup
  10.  
  11. myWebView.setWebChromeClient(new MyWebChromeClient());
  12. }
  13.  
  14. public class MyWebChromeClient extends WebChromeClient {
  15. @Override
  16. public void onGeolocationPermissionsShowPrompt(String origin,
  17. GeolocationPermissions.Callback callback) {
  18. // Geolocation permissions coming from this app's Manifest will only be valid for devices with API_VERSION < 23.
  19. // On API 23 and above, we must check for permission, and possibly ask for it.
  20. final String permission = Manifest.permission.ACCESS_FINE_LOCATION;
  21. if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M ||
  22. ContextCompat.checkSelfPermission(MainActivity.this, permission) == PackageManager.PERMISSION_GRANTED) {
  23. // we're on SDK < 23 OR user has already granted permission
  24. callback.invoke(origin, true, false);
  25. } else {
  26. if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permission)) {
  27. // user has denied this permission before and selected [/] DON'T ASK ME AGAIN
  28. // TODO Best Practice: show an AlertDialog explaining why the user could allow this permission, then ask again
  29. } else {
  30. // ask the user for permissions
  31. ActivityCompat.requestPermissions(MainActivity.this, new String[] {permission}, RP_ACCESS_LOCATION);
  32. mGeolocationOrigin = origin;
  33. mGeolocationCallback = callback;
  34. }
  35. }
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement