IamportUrl constructor
IamportUrl(
- String incomeUrl
Implementation
IamportUrl(String incomeUrl) {
this.url = incomeUrl;
List<String> splittedUrl =
this.url.replaceFirst(RegExp(r'://'), ' ').split(' ');
this.appScheme = splittedUrl[0];
if (Platform.isAndroid) {
/*
Android scheme은 크게 3가지 형태
1. intent://
2. [app]://
3. intent:[app]://
이 세가지를 정상적으로 launch가 가능한 2번 형태로 변환한다
*/
if (this.isAppLink()) {
if (this.appScheme!.contains('intent')) {
List<String> intentUrl = splittedUrl[1].split('#Intent;');
String host = intentUrl[0];
// 농협카드 일반결제 예외처리
if (host.contains(':')) {
host = host.replaceAll(RegExp(r':'), '%3A');
}
List<String> arguments = intentUrl[1].split(';');
// scheme이 intent로 시작하면 뒷쪽의 정보를 통해 appscheme과 package 정보 추출
if (this.appScheme! != 'intent') {
// 현대카드 예외처리
this.appScheme = this.appScheme!.split(':')[1];
this.appUrl = this.appScheme! + '://' + host;
}
arguments.forEach((s) {
if (s.startsWith('scheme')) {
String scheme = s.split('=')[1];
this.appUrl = scheme + '://' + host;
this.appScheme = scheme;
} else if (s.startsWith('package')) {
String package = s.split('=')[1];
this.package = package;
}
});
} else {
this.appUrl = this.url;
}
} else {
this.appUrl = this.url;
}
} else {
this.appUrl = this.url;
}
}