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

웹뷰 tel 및 카카오톡 공유 문제... 도와주세요.. ㅠㅠ

–1 추천

 

초보에요..

여기저기 찾아보면서 시도했는데 여전히 안되네요 ㅠㅠ

엑스박스가 뜨는것도 아닌데 도대체 어디가 문제인가요.

Uri.parse(url)); 여기서 url에 tel이면 전화번호

메일이면 메일주소를 넣어야 하는건가요??

net err unknown url scheme

계속 이렇게 오류가 생겨요. 카카오톡도 전화도요....살려주세요 ㅠ

 

package ************

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Browser;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebChromeClient;

public class Main extends Activity {

	private WebView mWebView;

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

		setLayout();

		mWebView.getSettings().setJavaScriptEnabled(true);
		mWebView.loadUrl("**********");
		mWebView.setWebViewClient(new WebViewClientClass());

	}

	@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) {
			view.loadUrl(url);
			return true;
			
		}
	}
	private void setLayout() {      
		mWebView = (WebView) findViewById(R.id.webview);
	};
	
	private class WebClient extends WebViewClient { 
        @Override 
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            
        	if (url.startsWith("sms:")) {
        	     Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(url));
        	     startActivity(i);
        	     return true;
        	    }
        	
        	if (url.startsWith("kakaolink:")) {
        	     Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        	     startActivity(i);
        	     return true;
        	    }
        	      	
        			        	
        	if(url.startsWith("tel")){
                    Intent i = new Intent(Intent.ACTION_DIAL);
                    i.setData(android.net.Uri.parse(url));
                    startActivity(i);
                    
            } else {
                    view.loadUrl(url);
                    
            } 
            	
            	            
            
            return true;
            
            
            
            
    }}		 
}
익명사용자 님이 2015년 7월 24일 질문

1개의 답변

0 추천

카카오톡은 SDK 라이브러리 프로젝트 제공하고 있습니다. 

카카오SDK를 사용하시기 위해서는 카카오개발자 사이트에서 키를 발급받아야 사용할 수 있습니다.

kakaoLink = KakaoLink.getKakaoLink(getContext(), key);
KakaoTalkLinkMessageBuilder kakaoTalkLinkMessageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();
kakaoTalkLinkMessageBuilder.addText((String) content);
kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build(),getContext());

이런 식으로 호출하시면 됩니다.

그리고 tel: 같은 경우는

Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
startActivity(intent);
이렇게 해보세요.
코딩인헬 (12,150 포인트) 님이 2015년 7월 24일 답변
코딩인헬님이 2015년 7월 24일 수정
창피하지만... ㅠㅠㅠ 정말 초보인지라....
저 구문은 어디에 넣으면 되는건가요...

카톡 sdk에서 키는 발급 받아놨었는데 첫번째 줄 key에 넣으면 되나요?

저 구문을 if구문에 넣으면 tel구문에 엑스박스가 안쳐지는데 저 구문을 빼면
오류가 납니다 ㅠㅠㅠㅠ
어제부터 속이 타들어 가는것 같네요 ㅠㅠ
kakaoLink = KakaoLink.getKakaoLink(getContext(), 발급받은키);
부분은 Main의 onCreate 에서 해주시면 됩니다.
물론 kakaoLink에 대한 선언은 해주시고요.
...