카카오톡 링크구현과 관련하여 질문드립니다.
-
샘플코드를 참조하여 만들고 있는데, KakaoLinkMainActivity.java & layout_kakaolink.main.xml을 이용하는 것이 맞나요? 아니면 추가해야할 코드가 있으면 알려주세요.
-
KakaoLinkMainActivity.java에서 "private KakaoDialogSpinner text, link, image, button;"을 샘플코드에서 찾지 못하겠네요? Spinner class가 코드의 어느부분에서 다운받을 수 있나요??
-
'kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build());' 이 부분에서 에러가 뜨는데, 무언가 선언을 잘못했나요?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kakaolink);
final String stringText = "카카오링크";
final String stringUrl = "http://*.********.***";
Button sendButton = (Button) findViewById(R.id.send);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
kakaoTalkLinkMessageBuilder.addText(stringText);
kakaoTalkLinkMessageBuilder.addInWebLink("******", stringUrl);
kakaoTalkLinkMessageBuilder.addAppButton("앱열기",
new AppActionBuilder()
.setAndroidExecuteURLParam("target=main")
.setIOSExecuteURLParam("target=main", AppActionBuilder.DEVICE_TYPE.PHONE).build());
kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build());
//이 부분에서 에러가 뜹니다.
} catch (KakaoParameterException e) {
e.printStackTrace();
alert(e.getMessage());
}
}
});
}
- 카카오톡 로그인과 관련하여 추가적으로 질문합니다. 로그인시 사용자의 정보를 얻어 올 수 있는 샘플코드가 있던데, 이 코드를 LoginActivity.java에 추가만 하면 되는 건가요? 사용가이드대로 설정한 상태입니다.
자세한 설명 감사드려요.
알려주신 대로 샘플앱에서 소스코드를 사용하고 있는데 몇 가지 에러가 생겨서 재차 질문드립니다.
- layout_kakaoLink_Main.xml에서 "com.kakao.sdk.link.sample.common.widget"대신
앱의 "패키지명"을 쓰는게 맞나요?
[layout_kakaoLink_Main.xml]
<“패키지명”.KakaoDialogSpinner
// “com.kakao.sdk.link.sample.common.widget"대신 앱의 “패키지명"을 쓰는게 맞나요?
xmlns:kakao=“http://schemas.android.com/apk/res/com.kakao.sdk.link.sample”
android:id=”@+id/text”
style="@style/spinner"
kakao:kakao_prompt="@string/text_type"
kakao:kakao_icon="@drawable/icon_link_01"
kakao:kakao_entries="@array/text_types"/>
- 샘플앱의에서 모든 필요한 코드를 넣었는데, 아래와 같은 에러가 뜹니다. 무슨 뜻인지 이해가 가질 않네요.
무엇을 수정하거나 첨부해야할지 알려주시면 고맙겠습니다.
[attrs.xml]
@drawable/selector_item_bg
match_parent
72dp
false
@drawable/popup_bg_a
@color/color6</item
C:\Users********\AndroidStudioProjects************\app\src\main\res\values\styles.xml
Error:(40, 5) No resource found that matches the given name: attr ‘com.kakao.sdk.link.sample:kakao_dialogTitle’.
Error:(40, 5) No resource found that matches the given name: attr ‘com.kakao.sdk.link.sample:kakao_showTitleDivider’.
Error:(40, 5) No resource found that matches the given name: attr ‘com.kakao.sdk.link.sample:kakao_titleTextColor’.
앱의 패키지명이 아니라 KakaoDialogSpinner 가 있는 절대경로를 써 주셔야해요.
attrs.xml 에러는 KakaoDialogSpinner에서 사용하고 있는 속성값들이 attrs.xml에 정의가 되어있기때문에 그것들도 함께 존재해야해서 에러가 나는것 같네요
sample에 values에 attrs.xml이 있습니다. 그 리소스를 가져오셔야지요~
그 소스는 이미 attrs.xml에 첨부하였습니다. 이러니 답답할 노릇이지요…^^;
어찌 해야할지 눈 앞이 캄캄합니다… 제발, 해결방법을 알려주세요.
메일로 보내드릴테니 분석해 주실 수 있나요?
[attrs.xml]
<?xml version="1.0" encoding="utf-8"?>
<declare-styleable name="FloatingActionButton">
<attr name="fab_colorPressed" format="color" />
<attr name="fab_colorNormal" format="color" />
<attr name="fab_shadow" format="boolean" />
<attr name="fab_type" format="enum">
<enum name="normal" value="0" />
<enum name="mini" value="1" /></attr>
</declare-styleable>
<declare-styleable name="KakaoDialogSpinner">
<attr name="kakao_prompt" format="string"/>
<attr name="kakao_entries" format="reference"/>
<attr name="kakao_icon" format="reference"/>
<attr name="kakao_dialogTitle" format="reference"/>
<attr name="kakao_showTitleDivider" format="boolean"/>
<attr name="kakao_titleTextColor" format="reference"/>
</declare-styleable>
com.kakao.sdk.link.sample:kakao_dialogTitle 요거의 path가 잘못됐네요. attr가 들어간 앱의의 경로이니 package name이 들어가야겠네요~
감사합니다. 결국 패키지명으로 제대로 바꾸어주지 않아 생긴 문제라는 뜻인가요?
-
layout_kakaolink_main.xml : 절대경로이니 그대로 샘플xml을 씀
-
attrs.xml를 갖다넣고 style.xml에서
<item name="com.kakao.sdk.sample:kakao_showTitleDivider">false</item>
<item name="com.kakao.sdk.sample:kakao_dialogTitle">@drawable/popup_bg_a</item>
<item name="com.kakao.sdk.sample:kakao_titleTextColor">@color/color6</item>
에 ‘com.kakao.sdk.sample:kakao_titleTextColor’ 대신 '패키지명.sample:kakao_titleTextColor"으로 바꾸면 됩니까?
@drawable/selector_item_bg
match_parent
72dp
false
@drawable/popup_bg_a
@color/color6
아니… 그건 해보셔야 할것 같아요~ 제가 코드를 봐 드릴수도 없는거고.^^;;
중요한것은 KakaoDialogSpinner 이던 attrs.xml 이던 해당위치를 잘 잡아주셔야 한다는거에요
주제넘는 말이지만 인터넷을 통해서 attribute 를 custom하게 만들어 사용하는 부분을 찾아서 먼저 어떤 원리로 동작하는것인지 알아보시는게 도움이 되실꺼에요~이렇게 하나하나 알려드리면 이해하기도 어려우실거고 도움도 많이 안되실꺼같아서요.
그리고 KakaoDialogSpinner이놈도 위에 말씀드린 바와같이 제공되고 있는 sample에서 사용하기 위해 조악하게 만들어진 custom widget이기 때문에 활용도가 있을지도 의문이구요
정확한 질문에 정확한 대답이 나갈 수 있는것인데 질문자체가 모호해서 저도 추측성 대답밖에 못해드리네요. 먼저 어떤 원리로 동작하는것인지에 대한 파악이 끝나면 질문도 더 정확해질거고 저도 좀더 도움을 드리기 쉽겠다고 생각이 들어요^^