본문 바로가기

Programming/Android

[Android] WebView 에서 getGeoLocation이 동작하지 않을 때( getGeoLocation is not working on Android Webview) onGeolocationPermissionsShowPrompt

웹뷰를 사용하다가 보면 getGeoLocation을 사용할때가 있다.

아이폰에서는 전혀 문제 없이 동작하는데 

안드로이드! 이놈에서만 위치정보를 받지 못한다.

인터넷을 무쟈게 검색후..

해답 발견.

WebChromeClient의 아래 Method를 overriding하여 구성해줘야하는데

코드는 다음과 같다.


@Override
public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) {

	final String myOrigin = origin;
	final GeolocationPermissions.Callback myCallback = callback;

	CommonDialogs dialog = new CommonDialogs(MainActivity.this); //custom Dialog

	dialog.showAlertDialog(MainActivity.this, R.string.gps_agree, new DialogInterface.OnClickListener() {

		@Override
		public void onClick(DialogInterface dialog, int which) {
			myCallback.invoke(myOrigin, true, true);
		}
	}, new DialogInterface.OnClickListener() {

		@Override
		public void onClick(DialogInterface dialog, int which) {
			 myCallback .invoke(myOrigin, false, false);
		}
	});

//			super.onGeolocationPermissionsShowPrompt(origin, callback);
}


참고 : http://bbulog.tistory.com/archive/20131125