티스토리 뷰

at ANDROID STUDIO

public class MainActivity extends AppCompatActivity {
	
	private GpsInfo gps;	//gps
	private String lat;		//위도
	private String lng;		//경도
    
	public static WebView webView = null; //웹뷰
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
		
        //JSP에서 안드로이드 함수를 호출할 때
        //"안드야"하고 부를 이름(?) 선언
        webView.addJavascriptInterface(new AndroidBridge(), "android");
        
        //웹페이지 로드
		webView.loadUrl("https://~~~~.com");
		
		
	}
	
	/*
	웹에서 좌표 호출 시 이용될 함수
	@JavascriptInterface <- 이 어노테이션이 쓰여야한다
	 */
	@JavascriptInterface
	public String myLocate(String str) throws JSONException {
		gps = new GpsInfo(getBaseContext());

		lat = String.valueOf(gps.getLatitude());
		lng = String.valueOf(gps.getLongitude());

		Toast.makeText(MainActivity.this, "위도="+lat+"경도"+lng, Toast.LENGTH_LONG).show();

		if(str != null) return lat;
		else return lng;
	}
	
}

 

at WEB, JSP

//웹에서 호출하는 좌표구하기 함수
function myLocate(){
	var lat, lng, v; //변수
	var isAndroid=(/android/i).test(navigator.userAgent); //현재기기가 안드인지 체크
    
    if(isAndroid){//안드가 맞다면
		//여기가 위쪽에서 작성된 안드로이드 코드를 사용하는 부분
		//window."안드야".함수;
		//하며 호출함
		lat = window.android.myLocate('lat');
		lng = window.android.myLocate(null);
        
		v = [lat, lng];
        
    }else{//안드가 아니라면
		v = [37.26389, 127.02861];
    }
    console.log(v); //콘솔에 찍자
};


<button id="btn" onClick="myLocate();" />

 

 

대충 정리해보았다.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함