728x90
반응형
webview에서 결제시 페이북, 앱카드 결제 연결이 안되는 이슈가 발생하였다.
1. Manifest.xml 에 추가
<queries>
<!--신용카드-->
<package android:name="kr.co.samsungcard.mpocket" /> <!--삼성 앱카드, 삼성 앱카드 공동인증서-->
<package android:name="com.shcard.smartpay" /> <!--신한 페이판-->
<package android:name="com.shinhancard.smartshinhan" /> <!--신한(ARS/일반결제/Smart결제), 신한 공동인증서-->
<package android:name="com.kbcard.cxh.appcard" /> <!--KBPay-->
<package android:name="com.kbstar.liivbank" /> <!--LiiV(국민은행)-->
<package android:name="com.kbstar.reboot" /> <!--new liib-->
<package android:name="com.kbstar.kbbank" /> <!--new liib-->
<package android:name="kvp.jjy.MispAndroid320" /> <!--페이북/ISP-->
<package android:name="com.hanaskcard.paycla" /> <!--하나카드 원큐페이-->
<package android:name="kr.co.hanamembers.hmscustomer" /> <!--하나멤버스-->
<package android:name="com.lcacApp" /> <!--롯데 앱카드-->
<package android:name="nh.smart.nhallonepay" /> <!--NH 올원페이, NH 올원페이 공동인증서-->
<package android:name="net.nshc.droidx3web" /> <!--NH 카드-->
<package android:name="kr.shiftworks.vguardweb" /> <!--NH 카드-->
<package android:name="com.payprotocol.walletkr" /> <!--NH 카드-->
<package android:name="kr.danal.app.damoum" /> <!--NH 카드-->
<package android:name="com.nh.cashcardapp" /> <!--NH 카드-->
<package android:name="kr.co.kfcc.mobilebank" /> <!--NH 카드-->
<package android:name="com.wooricard.smartapp" /> <!--우리 WON 카드-->
<package android:name="com.wooricard.wpay" /> <!--우리 카드-->
<package android:name="com.wooribank.smart.npib" /> <!--우리 카드-->
<package android:name="com.mysmilepay.app" /> <!--우리 카드-->
<package android:name="com.hyundaicard.appcard" /> <!--현대 앱카드-->
<package android:name="kr.co.citibank.citimobile" /> <!--씨티카드-->
<package android:name="com.citibank.cardapp" /> <!--씨티카드-->
<!--공인인증-->
<package android:name="com.hanaskcard.rocomo.potal" /> <!--하나카드-->
<package android:name="com.lumensoft.touchenappfree" /> <!--공동인증서-->
<!--백신-->
<package android:name="com.TouchEn.mVaccine.webs" /> <!--TouchEn mVaccine(신한)-->
<package android:name="com.ahnlab.v3mobileplus" /> <!--V3(NH, 현대)-->
<package android:name="kr.co.shiftworks.vguardweb" /> <!--V-Guard(삼성)-->
<!--간편결제-->
<package android:name="com.samsung.android.spay" /> <!--삼성페이(삼성, 농협, KB)-->
<package android:name="com.samsung.android.spaylite" /> <!--삼성페이 미니(삼성, KB)-->
<package android:name="com.kakao.talk" /> <!--카카오페이-->
<package android:name="com.nhn.android.search" /> <!--네이버페이-->
<package android:name="com.ssg.serviceapp.android.egiftcertificate" /> <!--SSGPay(현대)-->
<package android:name="com.nhnent.payapp" /> <!--페이코(삼성, 농협, KB)-->
<package android:name="com.lge.lgpay" /> <!--엘지페이(삼성, KB)-->
<package android:name="com.lottemembers.android" /> <!--LPay-->
<package android:name="com.tencent.mm" /> <!-- 위챗페이-->
<package android:name="viva.republica.toss" /> <!-- 토스-->
<package android:name="com.bankpay.android" />
<package android:name="com.knb.psb" />
<package android:name="com.kbankwith.smartbank" />
<!--계좌이체-->
<package android:name="com.kftc.bankpay.android" /> <!--금결원-->
<!--본인인증-->
<package android:name="com.sktelecom.tauth" /> <!--SKT-->
<package android:name="com.kt.ktauth" /> <!--KT-->
<package android:name="com.lguplus.smartotp" /> <!--LGT-->
<package android:name="uplus.membership" /> <!--LGT-->
</queries>
2.WebBrowserClient 설정 내 shouldOverrideUrlLoading
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (!url.startsWith("http://") && !url.startsWith("https://")) {
if (url.startsWith("intent")) {
val schemeIntent: Intent
schemeIntent = try {
Intent.parseUri(url, Intent.URI_INTENT_SCHEME)
} catch (e: URISyntaxException) {
e.printStackTrace()
return false
}
try {
activity.startActivity(schemeIntent)
return true
} catch (e: ActivityNotFoundException) {
val pkgName = schemeIntent.getPackage()
if (pkgName != null) {
activity.startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=$pkgName")
)
)
return true
}
}
} else {
return try {
activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
true
} catch (e: java.lang.Exception) {
e.printStackTrace()
false
}
}
}else{
view.loadUrl(url)
}
return true
}
*** Android 11 (API 30) 에서의 유의사항
안드로이드 API 레벨 30에서 특정 카드사/기관으로 결제 시도시, net::ERR_CLEARTEXT_NOT_PERMITTED 오류가 발생하는 경우가 있으니, AndroidManifest.xml 파일에 usesCleartextTraffic 속성을 true로 설정해주셔야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application
...
android:usesCleartextTraffic="true"
... >
</application>
</manifest>
728x90
반응형
'Kotlin' 카테고리의 다른 글
[j Android] 캡쳐,녹화 방지 및 캡쳐방지 해제 (0) | 2023.01.28 |
---|---|
[j Android] 디바이스 높이, status bar, navigation bar 높이 가져오기 (0) | 2022.12.29 |
[j android] 구글스토어 배포 후 페이스북, 카카오 로그인 안 될 때 (SHA-1, KEY HASH) (0) | 2022.11.11 |
[j android] 프로젝트에 aar 파일 추가하기 (0) | 2022.10.20 |
[j android] .toLowerCase() Deprecated (0) | 2022.10.14 |