본문 바로가기
Development/Android

[안드로이드] Android Daum 웹,앱 연동 및 검색스키마 사용!

by 푸민 2015. 10. 15.
반응형


안녕하세요 푸민입니다.

저번글에 이어서 이번에는 다음 웹과 앱을 연동해볼까요?


1. 다음 앱 호출 및 예외

- 다음 앱을 실행해주는 코드입니다.

PackageManager pm = mContext.getPackageManager();

try {

String strAppPackage = "net.daum.android.daum";

pm.getPackageInfo(strAppPackage, PackageManager.GET_ACTIVITIES);


Intent intent = pm.getLaunchIntentForPackage(strAppPackage);

startActivity(intent);

catch (Exception e) {

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setData(Uri.parse("http://m.daum.net/"));

startActivity(intent);

}


네이버와 방식을 똑같습니다. 단지 차이는 앱 실행용 패키지를 다음앱으로 바꾸는것이지요. 그리고 예외 상황에서 실행해주는 웹 주소도 다음으로 바꿔주시면됩니다.



2. 다음 앱에 검색페이지 요청

- 다음 앱을 호출하고 검색결과를 보여주는 페이지를 표시합니다.

PackageManager pm = mContext.getPackageManager();

try {

String strAppPackage = "net.daum.android.daum";

pm.getApplicationIcon(strAppPackage).getClass();


Intent intent = new Intent(Intent.ACTION_VIEW);

intent.addCategory(Intent.CATEGORY_DEFAULT);

intent.addCategory(Intent.CATEGORY_BROWSABLE);

intent.setData(Uri.parse("daumapps://search?keyword="+str));

startActivity(intent);

catch (Exception e) {

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setData(Uri.parse("http://m.search.daum.net/search?q="+str));

startActivity(intent);

}


먼저 PackageManager 로 앱이 있는지 없는지 확인 후 있으면 daumapps:// 라는 스키마를 사용하여 키워드를 던져줍니다. 그러면 다음 앱이 해당 요청을 받아서 검색페이지를 화면에 표시합니다. 물론 Exception 이 발생하면 웹으로 대체해서 띄어주는 코드도 있어야겠지요?

반응형

댓글