diff --git a/README.md b/README.md
index cf3fac1..4fd5619 100644
--- a/README.md
+++ b/README.md
@@ -81,6 +81,8 @@ app_scheme는 IAmPort 모듈에 정의할 것을 입력한다. (아래 Example
### AndroidManifest.xml 추가
+리엑트 네이티브 안드로이드 환경에서는 manifest상에 redirect를 위한 **appscheme을 등록하지 않습니다.**
+
```
-
+ <-- iOS와 달리 파라미터에 사용된 appscheme을 등록하지 않습니다.
```
diff --git a/android/src/main/java/com/jeongjuwon/iamport/IAmPortViewManager.java b/android/src/main/java/com/jeongjuwon/iamport/IAmPortViewManager.java
index b7c885a..7627f69 100644
--- a/android/src/main/java/com/jeongjuwon/iamport/IAmPortViewManager.java
+++ b/android/src/main/java/com/jeongjuwon/iamport/IAmPortViewManager.java
@@ -132,8 +132,16 @@ else if(pg.equals("kakao")){
view.setWebViewClient(new KakaoWebViewClient(activity, view));
}
else if(pg.equals("payco")){
+ PaycoWebViewClient webViewClient = new PaycoWebViewClient(activity, view, new UrlLoadingCallBack() {
- view.setWebViewClient(new PaycoWebViewClient(activity, view));
+ @Override
+ public void shouldOverrideUrlLoadingCallBack(String s) {
+ Log.i("iamport", "shouldOverrideUrlLoadingCallBack - " + s);
+ emitPaymentEvent(s, s, s);
+ }
+
+ });
+ view.setWebViewClient(webViewClient);
}
}
diff --git a/android/src/main/java/com/siot/iamportsdk/NiceWebViewClient.java b/android/src/main/java/com/siot/iamportsdk/NiceWebViewClient.java
index 719cfd4..c7f6f6f 100644
--- a/android/src/main/java/com/siot/iamportsdk/NiceWebViewClient.java
+++ b/android/src/main/java/com/siot/iamportsdk/NiceWebViewClient.java
@@ -48,9 +48,9 @@ public void bankPayPostProcess(String bankpayCode, String bankpayValue) {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
- // TODO: emit event
- Log.i("iamport", "shouldOverrideUrlLoading: " + url);
- mCallBack.shouldOverrideUrlLoadingCallBack(url);
+ // TODO: emit event
+ Log.i("iamport", "shouldOverrideUrlLoading: " + url);
+ mCallBack.shouldOverrideUrlLoadingCallBack(url);
if (!url.startsWith("http://") && !url.startsWith("https://") && !url.startsWith("javascript:")) {
Intent intent = null;
diff --git a/android/src/main/java/com/siot/iamportsdk/PaycoWebViewClient.java b/android/src/main/java/com/siot/iamportsdk/PaycoWebViewClient.java
index 07fb7e5..b2c8b70 100644
--- a/android/src/main/java/com/siot/iamportsdk/PaycoWebViewClient.java
+++ b/android/src/main/java/com/siot/iamportsdk/PaycoWebViewClient.java
@@ -12,18 +12,25 @@
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
+import com.jeongjuwon.iamport.UrlLoadingCallBack;
public class PaycoWebViewClient extends WebViewClient {
private Activity activity;
+ UrlLoadingCallBack mCallBack;
- public PaycoWebViewClient(Activity activity, WebView target) {
+ public PaycoWebViewClient(Activity activity, WebView target, UrlLoadingCallBack callBack) {
this.activity = activity;
+ this.mCallBack = callBack;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ // TODO: emit event
+ Log.i("iamport", "shouldOverrideUrlLoading: " + url);
+ mCallBack.shouldOverrideUrlLoadingCallBack(url);
+
if (!url.startsWith("http://") && !url.startsWith("https://") && !url.startsWith("javascript:")) {
Intent intent = null;
diff --git a/index.android.js b/index.android.js
index 273e8f9..55bf840 100644
--- a/index.android.js
+++ b/index.android.js
@@ -10,7 +10,7 @@ class IAmPort extends Component {
componentDidMount() {
- DeviceEventEmitter.addListener('paymentEvent', this._onShouldStartLoadWithRequest.bind(this));
+ DeviceEventEmitter.addListener('paymentEvent', this.paymentEvent.bind(this));
}
componentWillUnmount() {
@@ -33,14 +33,17 @@ class IAmPort extends Component {
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
- _onShouldStartLoadWithRequest(e) {
+ paymentEvent(e) {
var url = e.result;
var me = this;
var original = e;
//TODO delete
- // console.log("onShouldStartLoadWithRequest", e);
+ console.log("paymentEvent", e);
+ if (e.result == "success" || e.result == "failed") {
+ this.props.onPaymentResultReceive(e);
+ }
var imp_uid = this.getParameterByName("imp_uid", url),
merchant_uid = this.getParameterByName("merchant_uid", url),
@@ -98,7 +101,7 @@ class IAmPort extends Component {
return;
}
- iamport.receiveResult(rsp.success ? "success" : "failure", rsp.imp_uid, rsp.merchant_uid);
+ iamport.receiveResult(rsp.success ? "success" : "failed", rsp.imp_uid, rsp.merchant_uid);
});