Use kakaolink on Android WebView |
|
|
|
9³â Àü
|
HTML ºÎºÐ
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
<a id="kakao-link-btn" href="javascript:;"><img src="images/kakao_gift.jpg" width="100%" height="auto" alt=""/></a>
<script>
// »ç¿ëÇÒ ¾ÛÀÇ Javascript Å°¸¦ ¼³Á¤ÇØ ÁÖ¼¼¿ä.
Kakao.init('YOUR WEB KEY');
// Ä«Ä«¿ÀÅå ¸µÅ© ¹öÆ°À» »ý¼ºÇÕ´Ï´Ù. óÀ½ Çѹø¸¸ È£ÃâÇÏ¸é µË´Ï´Ù.
Kakao.Link.createTalkLinkButton({
container: '#kakao-link-btn',
label: 'OOO ÃÊ´ë ÇÕ´Ï´Ù. ',
image: {
src: 'http://À̹ÌÁö °æ·Î.png',
width: '100',
height: '100'
},
webButton: {
text: '¾ÛÀ¸·Î À̵¿',
url: 'https://play.google.com/store/apps/details?id=¾ÛÆÐÅ°Áö¸í' // ¾Û ¼³Á¤ÀÇ À¥ Ç÷§Æû¿¡ µî·ÏÇÑ µµ¸ÞÀÎÀÇ URLÀ̾î¾ß ÇÕ´Ï´Ù.
}
});
</script>
Andorid JAVA
private class myWebViewClient extends WebViewClient {
public static final String INTENT_PROTOCOL_START = "intent:";
public static final String INTENT_PROTOCOL_INTENT = "#Intent;";
public static final String INTENT_PROTOCOL_END = ";end;";
public static final String GOOGLE_PLAY_STORE_PREFIX = "market://details?id=";
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
/*
* android.os.Build.VERSION.SDK_INT >= 19 ¾Èµå·ÎÀ̵å 4.4 ÀÌ»óÀÎ °æ¿ì
*/
if (android.os.Build.VERSION.SDK_INT >= 19) {
if (url.startsWith(INTENT_PROTOCOL_START)) {
final int customUrlStartIndex = INTENT_PROTOCOL_START.length();
final int customUrlEndIndex = url.indexOf(INTENT_PROTOCOL_INTENT);
if (customUrlEndIndex < 0) {
return false;
} else {
final String customUrl = url.substring(customUrlStartIndex, customUrlEndIndex);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
intent.setData(Uri.parse(customUrl));
getBaseContext().startActivity(intent);
} catch (ActivityNotFoundException e) {
final int packageStartIndex = customUrlEndIndex+ INTENT_PROTOCOL_INTENT.length();
final int packageEndIndex = url.indexOf(INTENT_PROTOCOL_END);
final String packageName = url.substring(packageStartIndex, packageEndIndex < 0 ? url.length() : packageEndIndex);
intent.setData(Uri.parse(GOOGLE_PLAY_STORE_PREFIX + packageName));
getBaseContext().startActivity( intent );
}
return true;
}
} else {
return false;
}
} else {
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);
}
// if (url.startsWith(INTENT_PROTOCOL_START)) {
}
// return super.shouldOverrideUrlLoading(view, url); //To change body of
// overridden methods use File | Settings | File Templates.
} |
|
̵̧ : 530 |
̵̧
¸ñ·Ï
|
|