우려하던 대로 2019.01.02일자로 또 바뀌었네요. 내용 추가합니다.




앱에서 최신 앱 버전을 체크하기 위해 구글플레이의 링크를 이용해 따시는 경우들이 종종 있습니다. 


서버가 있어 서버에 등록하고 쓴다면 좋겠지만, 앱 업데이트시 마다 변경해야 하고 서버 자체가 없는 경우도 있다보니..


편의상 아래 링크처럼 구글플레이의 앱 링크를 열어 html을 긁어서 사용하는 모양새들인데요.


http://gun0912.tistory.com/8


언제인지는 정확히 모르겠지만... 기존에 알던 html 양식이 바뀌었습니다...;;;; (아마 2018.12월말부터??)


위 블로그에서는 2가지 방식을 권하고 있지요. jsoup을 사용하는 방식과 HttpURLConnection을 사용하는 법이요.


 먼저 jsoup을 사용하는 경우 기존 아래 같은 부분이..


	Elements Version = doc.select(".content");

	for (Element mElement : Version) {
		if (mElement.attr("itemprop").equals("softwareVersion")) {
			return mElement.text().trim();
		}
	}


아래와 같이 바꾸시면 되고요.


	Elements Version = doc.select(".htlgb").eq(3);

	for (Element mElement : Version) {
		return mElement.text().trim();
	}


HttpURLConnection을 사용하는 방식으로 하셨을 경우는 아래의 부분을..

	String startToken = "softwareVersion\">";
	String endToken = "<";


아래와 같이 바꾸시면 됩니다. (2018.04.17 일자 내용 추가)


	String startToken = "<div class="BgcNfc">Current Version</div><span class="htlgb"><div><span class="htlgb">";
        // 2018.04.17일자 이전
	// String startToken = "<div class=\"BgcNfc\">Current Version</div><div><span class=\"htlgb\">";
	String endToken = "</span></div>";


또 바겼습니다. 아래와 같이 바꾸시면 됩니다. (2019.01.04 일자 내용 추가)


	String startToken = "<div class=\"BgcNfc\">Current Version</div><span class=\"htlgb\"><div class=\"IQ1z0d\"><span class=\"htlgb\">";
// 2019.01.04일자 이전 // String startToken = "<div class="BgcNfc">Current Version</div><span class="htlgb"><div><span class="htlgb">"; // 2018.04.17일자 이전 // String startToken = "<div class=\"BgcNfc\">Current Version</div><div><span class=\"htlgb\">"; String endToken = "</span></div>";

다만 위와 같은 방법은 구글플레이 html 양식이 바뀐다면 또 문제가 되겠지요.


가능하시다면 번거럽더라도 다른 방법을 찾는게 맞을듯 싶습니다.


아 추가로 기존에 HttpURLConnection의 메소드 타입을 GET, POST 상관없이 구글플레이 html을 받아올 수 있었는데요.


오늘 확인해보니 POST로 할 경우 html을 받아올 수 없더군요. GET으로 하셔야 합니다.


이상 구글플레이에서 앱 버전 따기 간단히 남겨봅니다.

+ Recent posts