안드로이드 4.1.2 에서는
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("intent:") || url.startsWith("kakaolink:") || url.startsWith("market:")){
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
}else{
view.loadUrl(url);;
}
return super.shouldOverrideUrlLoading(view, url);
}
이코드로 하면 정상적으로 되고
android 4.4.2에서 위의 코드로 하면 오류가 발생 합니다.
url은
Log.d("URL", customUrl);
getBaseContext().startActivity( new Intent(Intent.ACTION_VIEW, Uri.parse(customUrl)));
에서 출력된 내용은
kakaolink://send?appkey=APIKEY&appver=1.0&apiver=3.0&linkver=3.5&objs=%5B%7B%22objtype%22%3A%22label%22%2C%22text%22%3A%22%EC%8A%A4%ED%83%80%EC%99%80%20%EB%94%94%EC%9E%90%EC%9D%B4%EB%84%88%EC%9D%98%20%EC%8D%B8%26%EC%8C%88%20%EC%BD%9C%EB%9D%BC%EB%B3%B4%EB%A0%88%EC%9D%B4%EC%85%98%20%ED%8C%A8%EC%85%98%EC%99%95%20%EC%BD%94%EB%A6%AC%EC%95%84%EC%97%90%20%EC%B4%88%EB%8C%80%20%ED%95%A9%EB%8B%88%EB%8B%A4.%20%22%7D%2C%7B%22objtype%22%3A%22image%22%2C%22src%22%3A%22http%3A%2F%2Fbnsfolio.com%2Ffk%2Fimages%2Ffk_icon_100.png%22%2C%22width%22%3A100%2C%22height%22%3A100%7D%2C%7B%22objtype%22%3A%22button%22%2C%22text%22%3A%22%ED%8C%A8%EC%85%98%EC%99%95%20%EC%BD%94%EB%A6%AC%EC%95%84%20(SBS%EA%B3%B5%EC%8B%9D%EC%95%B1)%22%2C%22action%22%3A%7B%22type%22%3A%22web%22%2C%22url%22%3A%22https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.xxx.XXXXXX%22%7D%7D%5D 입니다.
참고로 에뮬레이터 에러 내용 입니다.
System.err(2775): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?