모바일 웹에서는 카톡 실행이 되어서 로그인이 잘되고 있습니다.
현재 웹뷰에서는 페이지에서 아이디, 비밀번호 입력하는 창이 나오고 있습니다.
모바일웹과 같이 톡이 실행이 되고 바로 로그인이 되어야 하는데요.
아래와 같이 처리했습니다.
선배님들 한번 보시고 답변 부탁드립니다.
소스 첨부합니다.
// WebViewClient 부분
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.startsWith(“intent”)) {
try {
// Intent 생성
Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
// 실행 가능한 앱이 있으면 앱 실행
if (intent.resolveActivity(view.getContext().getPackageManager()) != null) {
view.getContext().startActivity(intent);
return true;
}
// Fallback URL이 있으면 현재 웹뷰에 로딩
String fallbackUrl = intent.getStringExtra("browser_fallback_url");
if (fallbackUrl != null) {
view.loadUrl(fallbackUrl);
return true;
}
}
catch (Exception ex){
}
}
}
/////////////////////////////////////////////////////////////////////////////////////
// 팝업창 시작
//
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg)
{
WebView newWebView = new WebView(MainActivity.this);
WebSettings webSettings = newWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
// 추가
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setSupportMultipleWindows(true);
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(newWebView);
ViewGroup.LayoutParams params = dialog.getWindow().getAttributes();
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
params.height = ViewGroup.LayoutParams.MATCH_PARENT;
dialog.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
dialog.show();
newWebView.setWebChromeClient(new WebChromeClient()
{
@Override public void onCloseWindow(WebView window)
{
dialog.dismiss();
}
});
((WebView.WebViewTransport)resultMsg.obj).setWebView(newWebView);
resultMsg.sendToTarget();
return true;
}
//
// 팝업창 끝
/////////////////////////////////////////////////////////////////////////////////////
// AndroidManifest.xml