瀏覽代碼

[컨텐츠][New] 맵 공유 추가

hyodong.min 7 年之前
父節點
當前提交
2852e0d066

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/tool/Share.java

@@ -26,6 +26,8 @@ public abstract class Share<T> {
 
   public abstract void shareRecommendCode(String code, IShareListener listener);
 
+  public abstract void shareMap(ContentsDetailBean contentsBean, String mapUrl, int pageIndex, IShareListener listener);
+
   public void dispose() {
     context = null;
 

+ 5 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareClipBoard.java

@@ -35,6 +35,11 @@ public class ShareClipBoard extends Share<Context> {
     copy("code", code, listener);
   }
 
+  @Override
+  public void shareMap(ContentsDetailBean contentsBean, String mapUrl, int pageIndex, IShareListener listener) {
+    copy("map", mapUrl, listener);
+  }
+
   private void copy(String label, String text, IShareListener listener) {
 
     ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

+ 31 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareFacebook.java

@@ -59,8 +59,7 @@ public class ShareFacebook extends Share<Activity> {
       }
 
       @Override
-      public void onCancel() {
-      }
+      public void onCancel() { }
 
       @Override
       public void onError(FacebookException error) {
@@ -106,6 +105,36 @@ public class ShareFacebook extends Share<Activity> {
     // 페이스북은 코드 공유 없음.
   }
 
+  @Override
+  public void shareMap(ContentsDetailBean contentsBean, String mapUrl, int pageIndex, IShareListener listener) {
+
+    Uri uri = Uri.parse(mapUrl);
+
+    Log.w("APP# ShareFacebook | shareMap", "|" + " uri: " + uri.toString());
+
+    ShareLinkContent content = new ShareLinkContent.Builder()
+      .setContentUrl(uri)
+      .build();
+
+    ShareDialog shareDialog = new ShareDialog(context);
+    shareDialog.registerCallback(this.callbackManager, new FacebookCallback<Sharer.Result>() {
+      @Override
+      public void onSuccess(Sharer.Result result) {
+        listener.onSuccess(result.toString());
+      }
+
+      @Override
+      public void onCancel() { }
+
+      @Override
+      public void onError(FacebookException error) {
+        error.printStackTrace();
+        listener.onFailure(0, error.getLocalizedMessage());
+      }
+    });
+    shareDialog.show(content);
+  }
+
   @Override
   public void disposeInternal() {
   }

+ 38 - 32
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareKakaoTalk.java

@@ -12,12 +12,10 @@ import com.kakao.message.template.ButtonObject;
 import com.kakao.message.template.ContentObject;
 import com.kakao.message.template.FeedTemplate;
 import com.kakao.message.template.LinkObject;
+import com.kakao.message.template.TextTemplate;
 import com.kakao.network.ErrorResult;
 import com.kakao.network.callback.ResponseCallback;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailBean;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
@@ -63,8 +61,6 @@ public class ShareKakaoTalk extends Share<Context> {
           .setMobileWebUrl(url).build())
         .setDescrption(contentsBean.getSubTitle())
         .build())
-      //.setSocial(SocialObject.newBuilder().setLikeCount(10).setCommentCount(20)
-      //.setSharedCount(30).setViewCount(40).build())
 
       .addButton(new ButtonObject(ResourceUtil.getString(R.string.view_in_web), LinkObject.newBuilder()
         .setWebUrl(url)
@@ -92,28 +88,6 @@ public class ShareKakaoTalk extends Share<Context> {
       }
     });
 
-
-    Map<String, Object> serverCallbackArgs = new HashMap<>();
-    serverCallbackArgs.put("user_id", "${current_user_id}");
-    serverCallbackArgs.put("product_id", "${shared_product_id}");
-
-//    KakaoLinkService.getInstance().sendDefault(context, serverCallbackArgs, new ResponseCallback<KakaoLinkResponse>() {
-//      @Override
-//      public void onFailure(ErrorResult errorResult) {
-//        Log.e("APP#  ShareKakaoTalk | onFailure", "|" + errorResult.toString());
-//        listener.onFailure(errorResult.getErrorCode(), errorResult.getErrorMessage());
-//
-//      }
-//
-//      @Override
-//      public void onSuccess(KakaoLinkResponse result) {
-//        Log.i("APP# ShareKakaoTalk | onSuccess", "|" + result.toString());
-//        // 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
-//        listener.onSuccess(result.toString());
-//
-//      }
-//    });
-
   }
 
   @Override
@@ -126,8 +100,6 @@ public class ShareKakaoTalk extends Share<Context> {
           .setMobileWebUrl(url).build())
         .setDescrption(": " + code + ResourceUtil.getString(R.string.app_join_recommend))
         .build())
-      //.setSocial(SocialObject.newBuilder().setLikeCount(10).setCommentCount(20)
-      //.setSharedCount(30).setViewCount(40).build())
 
       .addButton(new ButtonObject(ResourceUtil.getString(R.string.open_app), LinkObject.newBuilder()
         .setWebUrl(url)
@@ -137,9 +109,43 @@ public class ShareKakaoTalk extends Share<Context> {
         .build()))
       .build();
 
-//    Map<String, String> serverCallbackArgs = new HashMap<>();
-//    serverCallbackArgs.put("user_id", "${current_user_id}");
-//    serverCallbackArgs.put("product_id", "${shared_product_id}");
+    KakaoLinkService.getInstance().sendDefault(context, params, new ResponseCallback<KakaoLinkResponse>() {
+      @Override
+      public void onFailure(ErrorResult errorResult) {
+        Log.e("APP#  ShareKakaoTalk | onFailure", "|" + errorResult.toString());
+        listener.onFailure(errorResult.getErrorCode(), errorResult.getErrorMessage());
+      }
+
+      @Override
+      public void onSuccess(KakaoLinkResponse result) {
+        Log.i("APP# ShareKakaoTalk | onSuccess", "|" + result.toString());
+        // 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
+        listener.onSuccess(result.toString());
+      }
+    });
+  }
+
+  @Override
+  public void shareMap(ContentsDetailBean contentsBean, String mapUrl, int pageIndex, IShareListener listener) {
+
+    String url = contentsBean.getContentsUrlWithParamForShare(pageIndex);
+
+    String executionParams = new StringBuilder(CONTENTS_ITEM_NO).append("=")
+      .append(contentsBean.getItemNumber())
+      .append("&").append(CONTENTS_ITEM_PAGE).append("=")
+      .append(pageIndex).toString();
+
+    Log.e("APP#  ShareKakaoTalk | shareMap", "|" + " executionParams: " + executionParams);
+    Log.e("APP#  ShareKakaoTalk | shareMap", "|" + " url: " + url);
+
+    TextTemplate params = TextTemplate.newBuilder(mapUrl, LinkObject.newBuilder().build())
+      .addButton(new ButtonObject(ResourceUtil.getString(R.string.view_detail), LinkObject.newBuilder()
+        .setWebUrl(url)
+        .setMobileWebUrl(url)
+        .setAndroidExecutionParams(executionParams) //kakao95448ff031e92087b5dbc44d56cff7bb://kakaolink?itemNo=20322222&page=3
+        .setIosExecutionParams(executionParams)
+        .build()))
+      .build();
 
     KakaoLinkService.getInstance().sendDefault(context, params, new ResponseCallback<KakaoLinkResponse>() {
       @Override

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -680,6 +680,7 @@
   <string name="sending_email">이메일 보내기</string>
   <string name="view_in_web">웹으로 보기</string>
   <string name="view_in_app">APP으로 보기</string>
+  <string name="view_detail">자세히 보기</string>
   <string name="open_app">APP 열기</string>
   <string name="please_install_kakaotalk">카카오톡을 설치해 주세요.</string>