마스터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에 대한 선언은 해주시고요.
...