마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

쇼핑몰 웹뷰인데 카카오링크에서 앱이 죽어요...

0 추천

며칠 웹뷰때문에 고생중인데요.. ㅠ 
이게 쇼핑몰이여서 더더 문제가 생기는거인지;
일단, 상품페이지 안에서 카카오톡 링크(쇼핑몰 솔루션)를 끌어내는것까지는 성공이에요. 
그런데 메인에서 자바로 네임카드를 따로 넣어서 카카오링크를 건것은 누르면 앱이 죽어요. 
상품페이지 안에서 카카오스토리 링크도 죽고요... 

게시판은 관리자 권한이 있긴 하지만 관리자로 로그인해서 올리려고 하면 무단 링크 어쩌고....

이제 겨우 자바 발 디딛고 있는데 도움 부탁드립니다. 

 

package jejumi.com;

import android.os.Bundle;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.view.KeyEvent;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class Jejumi extends Activity {

	private static final String INTENT_PROTOCOL_START = null;
	private static final String INTENT_PROTOCOL_INTENT = null;
	private static final String INTENT_PROTOCOL_END = null;
	private static final String GOOGLE_PLAY_STORE_PREFIX = null;
	protected static final int FILECHOOSER_RESULTCODE = 0;
	private WebView mWebView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		setLayout();

		mWebView.getSettings().setJavaScriptEnabled(true);
		mWebView.loadUrl("http://jejumi.com");
		mWebView.setWebViewClient(new WebViewClientClass());
		mWebView.getSettings().setPluginState(PluginState.ON);

		// 파일첨부 가능하게 소스추가 시작
		mWebView.setWebChromeClient(new WebChromeClient() {
			@SuppressWarnings("unused")
			public void openFileChooser(ValueCallback<Uri> etWebChromeClient, String acceptType, String capture,
					ValueCallback<Uri> mUploadMessage) {
				ValueCallback<Uri> uploadMsg = null;
				mUploadMessage = uploadMsg;
				Intent i = new Intent(Intent.ACTION_GET_CONTENT);
				i.addCategory(Intent.CATEGORY_OPENABLE);
				i.setType("*/*");
				Jejumi.this.startActivityForResult(Intent.createChooser(i, "사진을 선택하세요"), FILECHOOSER_RESULTCODE);
			}
		});
		// 파일첨부 가능하게 소스추가 종료
		mWebView.loadUrl("http://www.jejumi.com");
		mWebView.setWebChromeClient(new WebChromeClient());
		// 소스추가 종료 201507
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
			mWebView.goBack();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	private class WebViewClientClass extends WebViewClient {
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			if (url.contains("tel:")) {
				Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:064-794-3797"));
				startActivity(intent);
			}
			if (url.contains("mailto:")) {
				Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:lsw6138@naver.com"));
				startActivity(intent);
			}
			if (url.contains("kakaolink:")) {
				Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
				startActivity(intent);
			}
			if (url.contains("storylink:")) {
				Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse(url));
				startActivity(intent);
			}
			if (url.contains("http:") || url.contains("https:")) {
				view.loadUrl(url);
			}
			return true;
		}
	}

	private Activity getContext() {
		// TODO Auto-generated method stub
		return null;
	}

	/*
	 * Layout
	 */
	private void setLayout() {
		mWebView = (WebView) findViewById(R.id.webview);
	}
}

 

커피숨 (120 포인트) 님이 2015년 7월 29일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...