@@ -380,6 +380,11 @@ public void onResume(boolean multitasking) {
380
380
if (shouldPauseInAppBrowser ) {
381
381
inAppWebView .onResume ();
382
382
}
383
+
384
+ // onelink를 통해 이동 후, 앱에 재 진입 시, 기존 페이지로 전환
385
+ if (edittext .getText ().toString ().contains ("onelink.me" )) {
386
+ goBack ();
387
+ }
383
388
}
384
389
385
390
/**
@@ -1090,6 +1095,11 @@ public void postMessage(String data) {
1090
1095
1091
1096
if (overrideUserAgent != null ) {
1092
1097
settings .setUserAgentString (overrideUserAgent );
1098
+ }else {
1099
+ //onelink에서 customscheme가 아닌 intent://사용하기 위해서 UA에서 wv를 제거
1100
+ String ua = settings .getUserAgentString ();
1101
+ String newUA = ua .replace ("; wv" ,"" );
1102
+ settings .setUserAgentString (newUA );
1093
1103
}
1094
1104
if (appendUserAgent != null ) {
1095
1105
settings .setUserAgentString (settings .getUserAgentString () + appendUserAgent );
@@ -1412,28 +1422,24 @@ else if (url.startsWith(HOGANGNONO_SCHEME)) {
1412
1422
}
1413
1423
// Supports Intent:// scheme. It usually used on above 4 version.
1414
1424
else if (url .startsWith (INTENT_PROTOCOL_START )) {
1415
- final int customUrlStartIndex = INTENT_PROTOCOL_START .length ();
1416
- final int customUrlEndIndex = url .indexOf (INTENT_PROTOCOL_INTENT );
1417
-
1418
- if (customUrlEndIndex < 0 ) {
1419
- return false ;
1420
- } else {
1421
- final String customUrl = url .substring (customUrlStartIndex , customUrlEndIndex );
1422
-
1425
+ // intent:// 실행코드 변경
1426
+ try {
1427
+ Intent intent = Intent .parseUri (url , Intent .URI_INTENT_SCHEME );
1423
1428
try {
1424
- cordova .getActivity ().startActivity (new Intent (Intent .ACTION_VIEW , Uri .parse (customUrl )));
1425
- } catch (ActivityNotFoundException e ) {
1426
- if (url .contains ("kakaolink://send" )) {
1427
- cordova .getActivity ().startActivity (new Intent (Intent .ACTION_VIEW , Uri .parse (GOOGLE_PLAY_STORE_PREFIX + "com.kakao.talk" )));
1428
- return true ;
1429
+ Uri uri = Uri .parse (intent .getDataString ());
1430
+ cordova .getActivity ().startActivity (new Intent (Intent .ACTION_VIEW , uri ));
1431
+ } catch (Exception e ) {
1432
+ LOG .e (LOG_TAG , "Error startActivity Intent " + url + ": " + e .toString ());
1433
+ String fallbackUrl = intent .getStringExtra ("browser_fallback_url" );
1434
+ if (fallbackUrl != null ) {
1435
+ LOG .d (LOG_TAG , "FallbackUrl : " + fallbackUrl );
1436
+ cordova .getActivity ().startActivity (new Intent (Intent .ACTION_VIEW , Uri .parse (fallbackUrl )));
1429
1437
}
1430
- final int packageStartIndex = customUrlEndIndex + INTENT_PROTOCOL_INTENT .length ();
1431
- final int packageEndIndex = url .indexOf (INTENT_PROTOCOL_END );
1432
- final String packageName = url .substring (packageStartIndex , packageEndIndex < 0 ? url .length () : packageEndIndex ).replace ("package=" , "" );
1433
- cordova .getActivity ().startActivity (new Intent (Intent .ACTION_VIEW , Uri .parse (GOOGLE_PLAY_STORE_PREFIX + packageName )));
1434
1438
}
1435
- return true ;
1439
+ } catch (Exception e ) {
1440
+ LOG .e (LOG_TAG , "Error parseUri " + url + ": " + e .toString ());
1436
1441
}
1442
+ return true ;
1437
1443
}
1438
1444
// Test for whitelisted custom scheme names like mycoolapp:// or twitteroauthresponse:// (Twitter Oauth Response)
1439
1445
else if (!url .startsWith ("http:" ) && !url .startsWith ("https:" ) && url .matches ("^[A-Za-z0-9+.-]*://.*?$" )) {
0 commit comments