모든 문서(일반 문서, 분류 문서, 파일(이미지, 사운드 등) 문서)는 분류가 달려 있어야 합니다.
--Administrator (토론)
Mercury 모듈 적용 가이드 (Android)
컴투스위키
Com2uS 공통모듈 | >> | Mercury | >> | Mercury 모듈 적용 가이드 (iOS)
Mercury 모듈 적용 가이드 (Android) |
>> | Mercury 모듈 레퍼런스 가이드 | >> | Mercury FAQ |
목차 |
역사
<작성법 참고>
Version | Date | SVN Revision | 담당자 | 변경 사항 |
---|---|---|---|---|
2.13.5 | 2020-09-25 | - | 최지수 |
|
2.13.3 | 2020-06-16 | - | 김현석 |
|
2.13.2 | 2020-05-22 | - | 김현석 |
|
2.13.1 | 2020-03-12 | - | 김현석 |
|
2.13.0 | 2020-01-23 | - | 김현석 |
|
2.12.8 | 2019-12-12 | - | 최지수 |
|
2.12.7 | 2019-10-23 | - | 최지수 |
개별전달된 버전입니다.
|
2.12.6 | 2019-10-16 | - | 최지수 |
|
2.12.4 | 2019-06-25 | - | 최지수 |
[라이브러리 및 리소스 배포 변경사항]
|
2.12.2 | 2018-11-20 | 2851 | 최지수 |
|
2.12.1 | 2018-10-01 | 2846 | 최지수 |
|
2.12.0 | 2018-08-31 | 2844 | 최지수 |
|
2.11.1 | 2018-06-27 | 2841 | 최지수 |
|
2.11.0 | 2018-05-02 | 2838 | 최지수 |
|
2.10.15 | 2018-02-07 | 2833 | 최지수 |
|
2.10.14 | 2017-12-08 | 2828 | 최지수 |
|
2.10.13 | 2017-09-20 | 2820 | 최지수 |
|
2.10.12 | 2017-08-28 | 2816 | 최지수 |
|
2.10.11 | 2017-07-11 | 2808 | 최지수 |
|
2.10.10 | 2017-02-27 | 2805 | 정다운 |
|
2.10.9 | 2017-01-26 | 2803 | 정다운 |
|
2.10.8 | 2016-11-28 | 2796 | 정다운 |
|
2.10.7 | 2016-09-09 | 2789 | 정다운 |
|
2.10.6 | 2016-07-27 | 2783 | 정다운 |
|
2.10.5 | 2016-05-26 | 2774 | 정다운 |
|
2.10.4 | 2016-04-12 | 2764 | 김규진 | |
2.10.3 | 2016-03-17 | 2754 | 김규진 |
|
2.10.2 | 2016-01-26 | 2747 | 김규진 |
|
2.10.1 | 2015-12-17 | 2735 | 김규진 |
|
2.8.1 | 2015-10-16 | 2726 | 김규진 | |
2.8.0 | 2015-08-12 | 2711 | 김규진 | |
2.7.6 | 2015-07-03 | 2697 | 김규진 | |
2.7.5 | 2015-06-22 | 2689 | 김규진 |
|
2.7.3 | 2015-06-17 | 2683 | 김규진 |
|
2.7.1 | 2015-06-05 | 2677 | 박가진 | |
2.7.0 | 2015-06-04 | 2673 | 박가진 |
|
2.6.1 | 2015-05-26 | 2670 | 박가진 | |
2.6.0 | 2015-04-29 | 2661 | 박가진 |
|
2.5.5 | 2015-04-02 | 2655 | 박가진 | |
2.5.4 | 2015-03-20 | 2651 | 박가진 |
|
2.5.3 | 2015-03-19 | 2650 | 박가진 |
|
2.5.2 | 2015/3/5 | 2647 | 박가진 |
|
2.4.3 | 2015/2/5 | 2638 | 박가진 |
|
2.4.0 | 2014/11/26 | 2612 | 강주상 |
|
2.3.11 | 2014/10/24 | 2588 | 임성훈 |
|
2.3.10 | 2014/10/21 | 2587 | 임성훈 |
|
2.3.9 | 2014/10/07 | 2586 | 임성훈 |
|
2.3.8 | 2014/07/10 | 2574 | 임성훈 |
|
2.3.7 | 2014/07/10 | 2563 | 임성훈 |
|
2.3.5 | 2014/04/22 | 2549 | 임성훈 |
|
2.3.4 | 2014/03/07 | 2541 | 조태형 |
|
2.3.3 | 2014/02/18 | 2537 | 김혜란 |
|
2.3.2 | 2014/02/17 | 2534 | 김혜란 |
|
2.3.1 | 2014/02/12 | 2530 | 김혜란 |
|
2.1.1 | 2013/12/16 | 2519 | 김혜란 |
|
2.0.8 | 2013/09/25 | 2488 | 김혜란 |
|
2.0.6 | 2013/08/29 | 2471 | 김혜란 |
|
2.0.4 | 2013/08/23 | 2463 | 김혜란 |
|
2.0.3 | 2013/07/31 | 2428 | 김혜란 |
|
1.0.3 | 2013/07/16 | 2415 | 김혜란 |
|
1.0.2 | 2013/07/16 | 2412 | 김혜란 |
|
1.0.1 | 2013/05/02 | 2278 | 김혜란 |
|
1.0.0 | 2013/03/01 | 김혜란 |
|
모든 버전의 역사 보기
공통 유의 사항
<작성법 참고>
Mercury적용 시 유의 사항
- Mercury 모듈 적용 시에는 Chartboost와 NewsBanner2를 적용하지 않음
- Mercury 에서 NewsBanner2를 함께 노출하고 있기 때문에 함께 적용하지 않음
- Mercury 전 후로 Chartboost가 함께 뜨는 것을 방지하기 위하여 Chartboost는 광고주로만 적용한다
- Mercury 모듈 적용 시에는 Chartboost와 NewsBanner2를 적용하지 않음
- Active User -> Hive Login -> Mercury 초기화 및 SetUID 설정 순서로 모듈이 실행되도록 적용한다
- 위 순서로 하지 않으면 Mercury관련 서버에 UID Log가 남지 않는다
- Active User -> Hive Login -> Mercury 초기화 및 SetUID 설정 순서로 모듈이 실행되도록 적용한다
<작성법 참고>
App ID 등록
- 앱 아이디, 노출 여부, 노출시킬 배너를 백오피스에 등록해야 합니다.
- 앱 정보를 등록하지 않을 경우 배너가 노출되지 않습니다.
- 앱 아이디, 노출 여부, 노출시킬 배너를 백오피스에 등록해야 합니다.
<작성법 참고>
UI제작 필요
- Mercury 공지사항 노출 함수(ShowNotice)를 사용하기 위한 버튼 UI제작이 필요합니다.
<작성법 참고>
함수호출 위치
- CS_MercuryShowForNotice와 CS_MercuryForcedShowForNotice 함수가 호출되는 위치는 같은 Scene에서 이루어지도록 해야 합니다.
- CS_MercuryShowForEvent와 CS_MercuryForcedShowForEvent 함수도 동일합니다.
<작성법 참고>
서버 에러 로그
- 서버에서 미노출 상태에 대한 에러로그를 클라이언트 로그로 출력하고 있습니다. 해당 로그들을 확인하고 문의하면 좀 더 빠른 답변을 얻으실 수 있습니다.
- error number : 0, msg : success => 성공
- error number : 1, msg : post data is null => 클라이언트로부터 받은 post 데이터가 없음
- error number : 2, msg : some data are missing => App ID, language, action 의 중요한 정보가 없음
- error number : 3, msg : cannot find mercury main info => 머큐리 메인 정보를 찾을 수 없음 : App ID 미등록일 확률이 높음.
- error number : 5, msg : cannot find cpi/event info => 전면배너에 등록될 이벤트나 CPI정보가 없음: 웹뷰개수가 1개이고 전면배너만 노출하도록 설정했을 경우.
- 서버에서 미노출 상태에 대한 에러로그를 클라이언트 로그로 출력하고 있습니다. 해당 로그들을 확인하고 문의하면 좀 더 빠른 답변을 얻으실 수 있습니다.
<작성법 참고>
YouTube 동영상 프로모션 (Android & iOS Mercury v2.11.0+)
- YouTube 동영상 링크가 담긴 스키마를 프로모션 페이지의 링크로 설정하여 Mercury에서 재생 가능
- 스키마 형태
- YouTube 동영상 링크가 담긴 스키마를 프로모션 페이지의 링크로 설정하여 Mercury에서 재생 가능
c2smercury://videoplay?{pid}|{time_to_show_close_btn}|{time_to_remain_close_btn}|{URL}
// ex ) c2smercury://videoplay?200001|4|2|https://www.youtube.com/watch?v=0gIOjN_kmKc
// - pid : 프로모션
// - time_to_show_close_btn : 동영상 종료 버튼 최초 노출 시간(sec)
// - time_to_remain_close_btn : 종료 버튼 노출 시 화면에 유지 시간(sec)
// - URL : YouTube 동영상 경로
// ex ) c2smercury://videoplay?200001|4|2|https://www.youtube.com/watch?v=0gIOjN_kmKc
// - pid : 프로모션
// - time_to_show_close_btn : 동영상 종료 버튼 최초 노출 시간(sec)
// - time_to_remain_close_btn : 종료 버튼 노출 시 화면에 유지 시간(sec)
// - URL : YouTube 동영상 경로
- 스키마 호출을 통해 동영상이 재생될 때 MERCURY_RESULT에서 콜백(MercuryCB)로 'MERCURY_VIDEO_PROMOTION_START = 17' 값이 전달됩니다. 해당 콜백을 받았다면 게임 사운드를 낮추거나 음소거하여 동영상 사운드와 겹치지 않게 조정합니다.
- 동영상이 종료되면 (닫기 버튼을 누르거나 재생 완료) 'MERCURY_VIDEO_PROMOTION_FINISH = 18' 값이 전달됩니다. 해당 콜백을 받았다면 게임 사운드를 올리거나 복구하여 소리 재생이 가능하도록 합니다. [콜백 타입값 확인하기]
- 커스텀 보드를 통해 아래 예시처럼 스키마 링크를 설정할 수 있습니다.
- 동영상 프로모션 사용을 위한 Android 및 iOS 프로젝트 설정
- Android
- .jar 파일 추가 : YouTubeAndroidPlayerApi.jar
- 리소스 추가 : [리소스 확인하기]
- AndroidManifest.xml에 추가<activity
android:name="com.com2us.module.mercury.MercuryVideoActivity"
android:hardwareAccelerated="true"
android:screenOrientation="sensorLandscape"
android:launchMode="standard"/>
<!-- 동영샹 재생 시 노출되는 화면 방향은 screenOrientation 설정 값으로 변경 가능 -->
- iOS
- WebKit.framework을 추가
- Android
- 동영상 프로모션 설정 시 '플랫폼 서버팀 박충렬 책임, 배하석 선임' 으로 문의바랍니다.
- 동영상 프로모션 사용을 위한 Android 및 iOS 프로젝트 설정
<작성법 참고>
YouTube 동영상 프로모션 기능 강화 (Android & iOS Mercury v2.12.4+)
- YouTube에서 제공하는 다양한 옵션을 사용할 수 있도록 기능이 업데이트 되었습니다
- (1-1) Android 설정하기
- YouTubeAndroidWebPlayerApi.aar 라이브러리를 추가하고 참고해야합니다.
- AndroidManifest.xml에 아래 내용을 추가합니다.
- (1-1) Android 설정하기
- YouTube에서 제공하는 다양한 옵션을 사용할 수 있도록 기능이 업데이트 되었습니다
<application>
...
<activity
android:name="com.com2us.module.mercury.MercuryWebVideoActivity"
android:hardwareAccelerated="true"
android:screenOrientation="sensorLandscape"
android:theme="@style/Theme.AppCompat.NoActionBar"/>
<!-- 동영샹 재생 시 노출되는 화면 방향은 screenOrientation 설정 값으로 변경 가능 -->
...
<application/>
...
<activity
android:name="com.com2us.module.mercury.MercuryWebVideoActivity"
android:hardwareAccelerated="true"
android:screenOrientation="sensorLandscape"
android:theme="@style/Theme.AppCompat.NoActionBar"/>
<!-- 동영샹 재생 시 노출되는 화면 방향은 screenOrientation 설정 값으로 변경 가능 -->
...
<application/>
<작성법 참고>
UserAcquisition 친구 초대 링크 전송 기능 (Android Mercury v2.13.0+, iOS Mercury v2.13.1+)
- UserAcquisition 친구 초대 링크 전송 기능을 사용할 수 있도록 업데이트 되었습니다.
- 딥링크 스키마를 받을 수 있도록 설정하기 (Android / iOS)
- Android Mercury v2.13.0, iOS Mercury v2.13.1 이상 라이브러리를 추가하고 참조해야합니다.
(Android Mercury v2.12.7, iOS Mercury v2.12.8 버전에 해당 기능이 포함되었으나 해당 버전은 정식 배포된 버전이 아닙니다.) - Android ModuleManager v2.5.12 이상 라이브러리를 추가하고 참조해야합니다.
- [Android] AndroidManifest.xml 및 build.gradle 에 아래 내용을 추가합니다.<!-- AndroidManifest.xml -->
<application>
<!--...(생략)...-->
<!-- 메인이 되는 런쳐 액티비티에 설정합니다 -->
<activity ... (생략)...
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.com2us.hivesdk.normal.freefull.google.global.android.common" /> <!-- 앱 아이디를 본 프로젝트 것으로 수정해주세요 -->
<!-- 해당 설정을 추가해야 '초대를 받는 유저'가 딥링크를 터치하였을때 앱이 딥링크 스키마를 수신할 수 있습니다. -->
</intent-filter>
</activity>
<!--...(생략)...-->
<application/><!-- AndroidManifest.xml -->
<application>
<!--...(생략)...-->
<!-- 페이스북 공유 시 필요한 설정입니다. -->
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider${facebook_app_id}"
android:exported="true" />
<!-- facebook 앱아이디를 facebook_app_id라는 변수와 같이 사용할 경우 위와 같이 추가 -->
<!-- facebook 개발자 사이트에서 제공하는 아래 가이드 스크린샷을 참고 바랍니다. -->
<!--...(생략)...-->
<application/>// build.gradle에서 facebook의 share 라이브러리를 추가합니다.
'com.facebook.android:facebook-share:5.4.+' - [iOS] 스키마가 전달될 수 있도록 'URL Scheme 추가'을 참고하여 등록합니다. 스키마의 형태는 아래 내용을 참고 바랍니다.// 딥링크 터치로 진입 시 액티비티로 들어오는 스키마 형태
com.com2us.hivesdk.normal.freefull.google.global.android.common://hivePromotionDeepLinkInvite?uatoken=eyJ0eXAiOiJKV1QiLCJhbGciOiJ
- Android Mercury v2.13.0, iOS Mercury v2.13.1 이상 라이브러리를 추가하고 참조해야합니다.
- 딥링크 스키마를 받을 수 있도록 설정하기 (Android / iOS)
- 초대 링크를 전달하는 입장
- (1) UserAcquisition 초대 링크 및 메시지 정보를 프로모션 서버에 요청
- UserAcquisition 초대 링크 및 메시지 정보를 반환 받는 API를 호출하여 초대 링크("invite_link")와 초대 메시지("invite_message")를 얻을 수 있습니다.
- 정보를 반환 받는 API 호출 시 초대 링크를 전달하는 유저의 uid와 프로모션 서버와 사전에 논의된 uatoken 정보를 API의 additionalInfo 파라미터에 넣어 전달합니다. (uatoken 값은 json 포멧으로 전달하며 uatoken 키는 모두 소문자입니다.) (uatoken 값은 초대를 받는 경우 검증에 사용될 수 있으니 게임 서버 등에서 관리 바랍니다.)// 반환 데이터 형태
{"uainfo":{"result_code":"0","result_message":"success","invite_message":"HIVE SDK에 초대합니다. 함께 플레이 하면 즐거움이 두 배 ★☆ 초대문구","invite_link":"http:\/\/test-ua.withhive.com\/ko\/ua684c?t=1571725383"}}
// result_code 목록
/**
0 RESULT_SUCCESS 성공
100 RESULT_ERROR_SERVER 서버 오류
200 RESULT_ERROR_PARAMETER 파라메타 전송 오류
201 RESULT_ERROR_INVALID_PARAMETER 파라메타 유효성 오류
300 RESULT_ERROR_DATABASE 데이터베이스 오류
301 RESULT_ERROR_QUERY_FAILED 쿼리 실패
302 RESULT_ERROR_DATA_NOT_FOUND 조회 실패
*/
- (2) 초대 링크와 초대 메시지를 활용하여 초대 기능 호출
- 앞서 얻은 초대 링크와 초대 메시지를 활용하여 초대 기능 API를 호출합니다.
- 초대 기능 API를 호출할 경우 초대 링크와 초대 메시지를 전달할 애플리케이션을 선택하는 UI가 노출됩니다. 애플리케이션을 선택하거나 클립보드에 내용을 복사하는 기능을 사용할 수 있습니다.
- (1) UserAcquisition 초대 링크 및 메시지 정보를 프로모션 서버에 요청
- 초대 링크를 받는 입장
- (1) 초대로 온 링크를 터치합니다.
- (2) '앱 실행'을 통해 앱에 진입한 경우
- Android/iOS에서 스키마를 받을 수 있는 설정이 정상적으로 되어있다면 아래와 같은 형태의 스키마가 넘어옵니다. 해당 스키마의 'hivePromotionDeepLinkInvite?' 이후 값을 파싱하여 uatoken 값을 받을 수 있습니다.// 딥링크 터치로 진입 시 액티비티로 들어오는 스키마 형태
com.com2us.hivesdk.normal.freefull.google.global.android.common://hivePromotionDeepLinkInvite?uatoken=eyJ0eXAiOiJKV1QiLCJhbGciOiJ - Android에서 스키마를 파싱하는 경우 activity에서 intent 데이터를 획득하여 onResume과 onNewIntent 메서드와 아래와 같이 구현할 수 있습니다. // Android 예시 코드입니다. 참고 바라며 앱에서 보다 편리한 방법으로 구현하셔도 됩니다.
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
Uri data = intent.getData();
if(data != null) {
Log.d("UATest", "onResume data : " + data.toString());
String[] schemeArr = data.toString().split("'hivePromotionDeepLinkInvite\\?");
if(schemeArr.length > 1) {
String[] dataSetArr = schemeArr[1].split("&");
for(int i = 0; i < dataSetArr.length; i++) {
String[] keyValueArr = dataSetArr[i].split("=");
if(keyValueArr.length > 1 && keyValueArr[0].equals("uatoken")) {
uaToken = keyValueArr[1];
Log.d("UATest", "onResume receivedUaToken : " + uaToken);
showDialogMsg("[초대받은 유저 UA Token 획득 성공]");
break;
}
}
}
}
Log.d("UATest", "onResume intent : " + intent.toString());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Bundle intentBundle = intent.getExtras();
Uri data = intent.getData();
if(data != null) {
Log.d("UATest", "onNewIntent data : " + data.toString());
String[] schemeArr = data.toString().split("hivePromotionDeepLinkInvite\\?");
if(schemeArr.length > 1) {
String[] dataSetArr = schemeArr[1].split("&");
for(int i = 0; i < dataSetArr.length; i++) {
String[] keyValueArr = dataSetArr[i].split("=");
if(keyValueArr.length > 1 && keyValueArr[0].equals("uatoken")) {
uaToken = keyValueArr[1];
Log.d("UATest", "onNewIntent receivedUaToken : " + uaToken);
showDialogMsg("[초대받은 유저 UA Token 획득 성공]");
break;
}
}
}
}
Log.d("UATest", "onNewIntent intent : " + intent.toString());
} - iOS에서 스키마를 파싱하는 경우 아래와 예시와 같이 구현할 수 있습니다.// iOS 예시 코드입니다. 참고 바라며 앱에서 보다 편리한 방법으로 구현하셔도 됩니다.
- (BOOL)application:(UIApplication*)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
NSLog(@"TTTESTTT URL : %@",url);
NSDictionary* dict = [self queryDictionaryFromURL:url];
if(dict!=nil && dict[@"uatoken"]!=nil){
[[NSUserDefaults standardUserDefaults] setObject:dict[@"uatoken"] forKey:@"mercury_sample_uatoken"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
return YES;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
return [self application:app openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
}
- (NSDictionary *)queryDictionaryFromURL:(NSURL *)url
{
NSString* query = url.query;
if (query == nil || query.length == 0)
return nil;
NSArray* components = [query componentsSeparatedByString:@"&"];
NSMutableDictionary* dict = [@{} mutableCopy];
for (NSString* component in components) {
if ([component isEqualToString:@""]) continue;
NSRange range = [component rangeOfString:@"="];
if (range.location == NSNotFound) {
[dict setObject:@"" forKey:component];
}
else {
NSString* key = [component substringToIndex:range.location];
NSString* value = [component substringFromIndex:range.location + range.length];
[dict setObject:value forKey:key];
}
}
return dict;
} - uatoken 값을 게임 서버 등에 관리하고 있는 값인지 확인하여 이상이 없는 경우 초대 링크로 들어온 인원에 보상을 할 수 있습니다.
- Android/iOS에서 스키마를 받을 수 있는 설정이 정상적으로 되어있다면 아래와 같은 형태의 스키마가 넘어옵니다. 해당 스키마의 'hivePromotionDeepLinkInvite?' 이후 값을 파싱하여 uatoken 값을 받을 수 있습니다.
- UserAcquisition 친구 초대 링크 전송 기능을 사용할 수 있도록 업데이트 되었습니다.
Android 유의 사항
<작성법 참고>
v2.5.3 이상 버전 사용 시
- Offerwall v2.0.5 이상의 버전이 함께 사용되어야 함.
<작성법 참고>
v2.5.5 이상 버전 사용 시
- Offerwall을 사용하는 경우에 한해, Offerwall v2.0.5 이상의 버전이 사용되어야 함.
Android 적용 방법
<작성법 참고>
Jar 파일 추가 (Java Libraries)
- Add JARS...
MainActivity.java
Com2uS Wrapper Project 는 이부분은 따로 설정할 필요가 없습니다.
import com.com2us.module.mercury.Mercury;
import com.com2us.module.mercury.Mercury.MercuryCB;
public class MainActivity extends Activity implements MercuryCB {
Mercury mc;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mc = new Mercury(this);
...
}
}
AndroidManifest.xml
- <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>- targetSdkVersion의 값이 28 이상인 경우
- application 태그에 usesCleartextTraffic 설정을 추가해야 합니다. (http:// 관련 통신이 가능하도록)<application
.. (기타 설정) ..
android:usesCleartextTraffic="true" />
- application 태그에 usesCleartextTraffic 설정을 추가해야 합니다. (http:// 관련 통신이 가능하도록)
- targetSdkVersion의 값이 28 이상인 경우
Resource 추가
Case 1
- 아래 경로에서 리소스를 확인하시기 바랍니다.
- Wrapper Project 폴더 구성
- Non-Wrapper Project 폴더 구성
새로운 UI가 적용된 v2.4.0 이상 버전 resource도 같은 경로에 넣어주시면 됩니다.
Case 2- Android에서 Mercury v2.10.13 이상 적용 시 해당합니다.
- 아래 경로에서 리소스를 확인하시기 바랍니다.
- 안드로이드 프로젝트의 /res 경로에 해당 리소스를 모두 복사하도록 합니다.
Case 3
- Android에서 Mercury v2.11.0 이상 적용 시 해당합니다.
- 아래 경로에서 리소스를 확인하시기 바랍니다.
- 커스텀뷰 UI 개선 및 YouTube 동영상 프로모션 기능이 추가되어 아래 리소스가 모두 추가되어야 합니다.
- /res/layout 경로 (7개) : promotion_customview_v2_banner_landscape.xml, promotion_customview_v2_banner_portrait.xml, promotion_customview_v2_full_landscape.xml, promotion_customview_v2_full_portrait.xml, promotion_video_control_dialog.xml, promotion_video_main.xml, promotion_video_sub.xml
- /res/drawable 경로(9개) : promotion_customview_btn_close_image.png, promotion_customview_btn_close_vector.xml, promotion_customview_btn_next_image.png, promotion_customview_btn_next_vector.xml, promotion_customview_btn_prev_image.png, promotion_customview_btn_prev_vector.xml, promotion_customview_btn_refresh_image.png, promotion_customview_btn_refresh_vector.xml, promotion_customview_rounded_shape.png
Case 4
- Android에서 Mercury v2.15.0 이상 적용 시 해당합니다.
- 아래 경로에서 리소스를 확인하시기 바랍니다.
- 프로모션 UI에 대한 다해상도 지원으로 아래 리소스를 추가해야 합니다.
- /res/layout 경로 (3개) : promotion_popup_1btn_dialog.xml, promotion_popup_2btn_dialog.xml, promotion_popup_3btn_dialog.xml
- /res/drawable 경로(4개) : hive_popup_border.xml, hive_popup_round_button_box.xml, hive_popup_round_top.xml, hive_popup_round_touch_box.xml
- /res/drawable-hdpi 경로(2개) : hive_promotion_btn_native_x.png, hive_promotion_offerwall_btn_x.png
- /res/drawable-mdpi 경로(2개) : hive_promotion_btn_native_x.png, hive_promotion_offerwall_btn_x.png
- /res/drawable-xdpi 경로(3개) : hive_promotion_btn_native_x.png, hive_promotion_offerwall_btn_x.png, hivedialog_scroll_bar.png
- /res/drawable-xxdpi 경로(2개) : hive_promotion_btn_native_x.png, hive_promotion_offerwall_btn_x.png
- /res/drawable-xxxdpi 경로(2개) : hive_promotion_btn_native_x.png, hive_promotion_offerwall_btn_x.png
- /res/values 경로(1개) : hive_dimens.xml
- /res/values-sw600dp 경로(1개) : hive_dimens.xml
- v2.15.0에서 UI 개선으로 더이상 사용하지 않는 리소스
- /assets/common/mercury 경로(20개) : popup_box_end_pad.png, popup_box_end_pad_0_article.png, popup_box_end_pad_1_btn_left.png, popup_box_end_pad_1_btn_center.png, popup_box_end_pad_1_btn_right.png, popup_box_end_phone.png, popup_box_end_phone_0_article.png, popup_box_end_phone_1_btn_left.png,, popup_box_end_phone_1_btn_center.png, popup_box_end_phone_1_btn_right.png, popup_box_review_pad.png, popup_box_review_pad_0_article.png, popup_box_review_pad_1_btn_left.png, popup_box_review_pad_1_btn_center.png, popup_box_review_pad_1_btn_right.png, popup_box_review_phone.png, popup_box_review_phone_0_article.png, popup_box_review_phone_1_btn_left.png, popup_box_review_phone_1_btn_center.png, popup_box_review_phone_1_btn_right.png,
- /assets/common/offerwall 경로(2개) : btn_native_X.png, btn_native_X_tablet.png
Android Mercury v2.12.4 부터 별도의 리소스 추가가 필요 없습니다.
- .aar 형태의 라이브러리로 배포되어 리소스가 라이브러리에 포함되어있습니다. 따라서 별도의 리소스 파일을 추가할 필요가 없습니다.
Android Studio 적용 방법 (190625 배포 이후)
1) .aar 라이브러리 추가하기
- 배포된 패키지에 있는 Mercury-x.x.x.aar 라이브러리를 프로젝트가 추가합니다.
- build.gradle 설정에서 해당 .aar 파일을 implementation하여 빌드되도록 설정합니다.
2) 통합 리소스 및 수정설정 리소스 추가하기
- 리소스 가이드에 있는 통합 리소스와 수정설정 리소스를 프로젝트에 추가합니다. [리소스 추가하기]
3) Mercury 라이브러리가 필요로하는 외부 라이브러리를 추가하기
- Mercury 라이브러리는 Android Support 라이브러리 등 외부 라이브러리를 필요로 합니다. 아래 라이브러리를 build.gradle의 dependencies 항목에 추가하여 같이 사용하도록 합니다.
//... (생략)...
dependencies {
// ...(생략)...
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
//...(생략)...
dependencies {
// ...(생략)...
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
//...(생략)...
4) gradle.properties 파일 내 androidX 사용 설정
- gradle.properties 파일 내 아래의 코드를 추가하세요. gradle.properties 파일이 존재하지 않는 경우 신규 생성 후 아래의 코드를 추가하세요.
android.useAndroidX=true
android.enableJetifier=true
android.enableJetifier=true
Debug
- Mercury
- Mercury Log Tag
Com2uS 공통모듈 | >> | Mercury | >> | Mercury 모듈 적용 가이드 (iOS)
Mercury 모듈 적용 가이드 (Android) |
>> | Mercury 모듈 레퍼런스 가이드 | >> | Mercury FAQ |