URI_INTENT_SCHEME

Jang Seok Woo·2021년 7월 13일
0

실무

목록 보기
44/136

WebView 에서 특정 URL을 호출 할 때, shouldOverridingLoading 함수를 통해 가로챌 수가 있습니다.

이때 KakaoLink 같은 scheme를 통한 앱을 실행하고자 할 경우

아래 소스에서 "intent:" 부분을 넣어주시면 됩니다.

public class CustomWebViewClient extends WebViewClient {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
Intent call_phone = new Intent(Intent.ACTION_CALL);
call_phone.setData(Uri.parse(url));
startActivity(call_phone);
} else if (url.startsWith("sms:")) {
Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(url));
startActivity(i);
} else if (url.startsWith("intent:")) {
try {
Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
Intent existPackage = getPackageManager().getLaunchIntentForPackage(intent.getPackage());
if (existPackage != null) {
startActivity(intent);
} else {
Intent marketIntent = new Intent(Intent.ACTION_VIEW);
marketIntent.setData(Uri.parse("market://details?id=" + intent.getPackage()));
startActivity(marketIntent);
}
return true;
} catch (Exception e) {
e.printStackTrace();
}
} else {
view.loadUrl(cfuntion.urlValidation(url));
}

return true;
}
profile
https://github.com/jsw4215

0개의 댓글