안녕하세요 반갑습니다.
안녕하세요 반갑습니다.
TPToss payments 개발자 커뮤니티
Created by 안녕하세요 반갑습니다. on 2/15/2024 in #❓┃연동개발-문의
Android PaymentWebView OOM 이슈 제보
No description
6 replies
TPToss payments 개발자 커뮤니티
Created by 안녕하세요 반갑습니다. on 1/25/2024 in #❓┃연동개발-문의
안드로이드 PaymentWidget 객체 생성시 이슈 사항 문의
저희 서비스에서는 주문하기 화면이 Activity 안에 Fragment 에 있는 구조입니다. Toss SDK 구조 특성상 액티비티를 생성시 "PaymentWidget" 생성해야 합니다. (아래 코드 참고)
private val htmlRequestActivityResult =
activity.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
methodWidget?.evaluateJavascript(
result.data?.getStringExtra(Constants.EXTRA_KEY_DATA).orEmpty()
)
}
}

private val paymentResultLauncher: ActivityResultLauncher<Intent> =
TossPayments.getPaymentResultLauncher(
activity,
{
paymentCallback?.onPaymentSuccess(it)
},
{
paymentCallback?.onPaymentFailed(it)
})
private val htmlRequestActivityResult =
activity.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
methodWidget?.evaluateJavascript(
result.data?.getStringExtra(Constants.EXTRA_KEY_DATA).orEmpty()
)
}
}

private val paymentResultLauncher: ActivityResultLauncher<Intent> =
TossPayments.getPaymentResultLauncher(
activity,
{
paymentCallback?.onPaymentSuccess(it)
},
{
paymentCallback?.onPaymentFailed(it)
})
Activity 생성시 아래 코드처럼 PaymentWidget, PaymentMethod 을 생성하고, 구매하기 화면(Fragment) 에서 해당 PaymentWidget 과 PaymentMethod 를 가져다가 사용하는데 이슈가 발생하는 경우가 있을까요? 추가적으로 결제가 완료되면 해당 페이지는 finish 처리합니다.
Activity.kt
onCreate(){
PaymentWidget(
activity = this,
clientKey = intent.tossSdkClientKey,
customerKey = intent.tossSdkCustomerKey,
paymentOptions = PaymentWidgetOptions.Builder()
.brandPayOption(intent.tossSdkRedirectUrl)
.build()
)
PaymentMethod(this).apply {
updatePadding(left = 15.dp, top = 19.dp, right = 15.dp)
}
}
Activity.kt
onCreate(){
PaymentWidget(
activity = this,
clientKey = intent.tossSdkClientKey,
customerKey = intent.tossSdkCustomerKey,
paymentOptions = PaymentWidgetOptions.Builder()
.brandPayOption(intent.tossSdkRedirectUrl)
.build()
)
PaymentMethod(this).apply {
updatePadding(left = 15.dp, top = 19.dp, right = 15.dp)
}
}
9 replies