Android Studio/java

16. [안드로이드/java] 웹뷰에서 외부 브라우저로 url 열기

drizzle0925 2021. 10. 14. 16:25
728x90

Android

MainActivity

protected void onCreate(Bundle savedInstanceState) {
    ...
    mWebView.setWebViewClient(new WebViewClientClass()); // 외부 브라우저 띄우기
}



private class WebViewClientClass extends WebViewClient {
	@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			if(url != null && url.startsWith("callapp:")) { // 무료 포인트 클릭 이벤트
			String decodeUrl = null;
			try{
				if(url.contains("externalBrowser")){
				String inputUrl = url.split("///")[1];
				decodeUrl = new String(Base64.decode(inputUrl, 0));
			}
			Intent intent = Intent.parseUri(decodeUrl, Intent.URI_INTENT_SCHEME);
			if(intent != null){
				startActivity(intent);
			}
			return true;
			}catch(URISyntaxException e){
				e.printStackTrace();
			}
        }
		view.loadUrl(url);
		return false;
	}
}

 

 

JavaScript

e.preventDefault();
let $url = $(this).data("url");
let $url_base64 = btoa($url); // base64 인코딩
let platform = mobileCheck();
console.log(platform);
if(platform === 'ios' || platform === 'android'){
	location.href = "callApp://externalBrowser///" + $url_base64;
} else {
	window.open($url);
}
728x90