Andorid Studio에서 WebView를 이용해서 지도를 띄웠는데 현재 위치와 내 위치를 못찾고 있습니다.
배포일이 임박했는데 빨리 답변주시면 감사하겠습니다
소스코드는 이렇습니다
public class MainActivity extends AppCompatActivity
{
//////////////////////////// 웹뷰 Start ////////////////////////////
private WebView mWebView; // 웹뷰 선언 //
private WebSettings mWebSettings; // 웹뷰 세팅 //
View view = this.getCurrentFocus();
//////////////////////////////////////////////////////////////////
String[] permission_list = {Manifest.permission.CALL_PHONE,Manifest.permission.ACCESS_FINE_LOCATION}; // 권한 리스트 //
BackPressCloseHandler backPressCloseHandler = new BackPressCloseHandler(this);
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 권한 여부창 함수 //
checkPermission();
mWebView = (WebView) findViewById(R.id.webView); // 웹뷰 시작 //
final Context myApp = this;
mWebView.setWebViewClient(new WebViewClient()); // Webview에 관한 설정을 하기 위해 클라이언트 호출 //
mWebSettings = mWebView.getSettings(); // 세부적인 세팅 등록//
mWebSettings.setJavaScriptEnabled(true); // 웹페이지 자바스크립트 허용 //
mWebSettings.setSupportMultipleWindows(false); // 새창 띄우기 거부 //
mWebSettings.setJavaScriptCanOpenWindowsAutomatically(false); // 자바 스크립트 새창 띄우기 거부 //
mWebSettings.setLoadWithOverviewMode(true); // 매타태그 허용 //
mWebSettings.setUseWideViewPort(true); // 화면 사이즈 맞추기 허용 //
mWebSettings.setSupportZoom(false); // 화면 줌 거부 //
mWebSettings.setBuiltInZoomControls(false); // 화면 확대 축소 거부 //
mWebSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); // 컨텐츠 사이즈 맞추기 //
mWebSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); // 브라우저 캐시 허용 여부 //
mWebSettings.setDomStorageEnabled(true); // 로컬 저장소 허용 여부 //
mWebSettings.setGeolocationEnabled(true); // Geolocation 허용 여부 //
mWebSettings.setRenderPriority(WebSettings.RenderPriority.HIGH); // 랜더링 높이기 //
mWebView.setWebChromeClient(new WebChromeClient()
{
// gps location 권한 //
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback)
{
super.onGeolocationPermissionsShowPrompt(origin, callback);
callback.invoke(origin, true, false);
}
});
/////////////////////////// 웹뷰 성능 향상 ///////////////////////////
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
else{
mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
}
//////////////////////////// 권한 Start ////////////////////////////
public void checkPermission()
{
// 안드로이드 버전이 6.0 미만이면 메서드 종료
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return;
for(String permission : permission_list)
{
// 권한 허용 여부를 확인 //
int chk = checkCallingOrSelfPermission(permission);
// 권한 허용여부 창 //
if(chk == PackageManager.PERMISSION_DENIED)
{
requestPermissions(permission_list,0);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
// 권한 승인/거부 시의 이벤트 처리. 구현 시 이곳에서 개발하면 됨 //
if(requestCode == 0)
{
for(int i=0 ; i<grantResults.length ; i++)
{
// 허용됐다면 //
if (grantResults[i] == PackageManager.PERMISSION_GRANTED)
{
mWebView.loadUrl("http://www.amenityinfo.net"); // 웹뷰에 표시할 웹사이트 주소 //
}
}
}
}
//////////////////////////// 권한 End ////////////////////////////
//////////////////////////// 뒤로가기 기능 ////////////////////////////
@Override
public void onBackPressed() {
// 메인 페이지로 넘어왔다면 (대소문자 무시) //
if (mWebView.getOriginalUrl().equalsIgnoreCase("https://www.amenityinfo.net/web/main/index.do")
|| mWebView.getOriginalUrl().equalsIgnoreCase("https://www.amenityinfo.net/web/map/webMapMain.do")) {
backPressCloseHandler.onBackPressed();
}
else if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
backPressCloseHandler.onBackPressed();
}
}
public class MyWebViewClient extends WebViewClient {
//////////////////////////// 전화걸기 기능 ////////////////////////////
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("http:") || url.startsWith("https:")) {
return false;
} else if (url.startsWith("tel:")) {
Intent dial = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
// 현재의 액티비티에 대해서 시작액티비티 호출
startActivity(dial);
return true;
} else {
view.loadUrl(url);
}
return true;
}
}
//////////////////////////// 전화걸기 기능 ////////////////////////////
}